当数组中的值发生变化时,我正在使用angular watch触发回调函数。然后,该函数必须获取已更改的数组中的值。下面是代码和小提琴的链接
<div ng-app>
<h2>Please modify the values, how to watch them?</h2>
<div ng-controller="TodoCtrl">
<ul>
<li ng-repeat="col in columns">
<input type="text" ng-model="col.field" />
<input type="text" ng-model="col.displayName" />
</li>
</ul>
</div>
</div>
--------------------------------
function TodoCtrl($scope) {
$scope.columns = [
{ field:'title', displayName: 'TITLE'},
{ field: 'content', displayName: 'CONTENT' }
];
$scope.$watch('columns', function(newVal) {
alert(newVal);
},true);
}
答案 0 :(得分:2)
使用函数(newVal,oldVal){},第一个参数将返回新值,第二个参数将为您提供旧值。
function TodoCtrl($scope) {
$scope.columns = [
{ field:'title', displayName: 'TITLE'},
{ field: 'content', displayName: 'CONTENT' }
];
$scope.$watch('columns', function(newVal,oldVal) {
alert("OLD Data: "+JSON.stringify(oldVal));
alert("NEW DATA: "+JSON.stringify(newVal));
},true);
}
参见工作小提琴示例。 http://jsfiddle.net/imhassan66/7dzyL/