0

コントローラー内からモデルを読み込もうとしています。私がこのコントローラーを持っているとしましょう

angular.module('app', [])
  .controller('MainCtrl', function($scope) {
    $scope.data = {title: 'foo'};

    $scope.log = function() {
      console.log($scope.data);
    }
  });

そして、このマークアップ

<div ng-app="app" ng-controller="MainCtrl">
  <input ng-model="data.title">
  <button ng-click="log()">log</button>  
</div>

初めてボタンを押すと、値を変更した場合も機能しますが、その後のすべてのクリックでは、入力データが変更されても、最初のモデルが再度ログに記録されます。

何が得られないのですか?この目的のために何か他のものを使用する必要がありますか? サービス?

フィドル: http://jsfiddle.net/J6jLz/1/

更新 不思議なことに、実際のデータ オブジェクトをログに記録する前に「タイトル」プロパティをログに記録すると機能します: http://jsfiddle.net/Yf5kz/4/

これは$applyおそらくスコープに関係していますか?

4

1 に答える 1

0

代わりにこれを試してください

console.log(JSON.stringify($scope.data));
于 2013-02-18T21:28:37.103 に答える