替換字符串的函數或使用$ watchCollection,像這樣:
使用VAR:
angular.module('TestApp', [])
.controller('MainCtrl', function($scope){
// Object
var settings = {
number: 1,
foobar: 'Hello World'
};
$scope.$watch(function(){ return settings.number; }, function(newValue, oldValue){
console.log('New value detected in settins.number');
});
$scope.$watchCollection(function(){ return settings; }, function(newValue, oldValue){
console.log('New value detected in settings');
});
});
使用$範圍:
angular.module('TestApp', [])
.controller('MainCtrl', function($scope){
// Object
$scope.settings = {
number: 1,
foobar: 'Hello World'
};
$scope.$watch('settings.number', function(newValue, oldValue){
console.log('New value detected in $scope.settings.number');
});
});
例子:http://jsfiddle.net/Chofoteddy/2SNFG/
* Note:AngularJS版本1.1.x及更高版本中提供的$ watchCollection。如果您需要觀察數組中的多個值或對象中的多個屬性,它會非常有用。
我覺得孩子們在變化不會觸發這種改變。你可以試着看數字本身,並更新數字而不是封閉在父對象中。不知道,但我有一箇舊版本的角度相同的問題 – Anoop