如何使用Angularjs Watch获取newVal

时间:2013-12-18 11:37:27

标签: javascript angularjs

当数组中的值发生变化时,我正在使用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);
}

链接到小提琴: - http://jsfiddle.net/SYx9b/#&togetherjs=MLzovnvQAI

1 个答案:

答案 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/