コントローラー内からモデルを読み込もうとしています。私がこのコントローラーを持っているとしましょう
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
おそらくスコープに関係していますか?