Angularjs试图在数组中观察对象的属性

时间:2014-10-17 16:35:58

标签: angularjs ng-grid

$scope.testObj = [{'name':'john'},{'name':'bob'}];

在这种情况下我做

$scope.watch(testObj.name, examplefunction, true)....

这不起作用,但确实如此

$scope.watch(testObj[0].name...)

前者阻止页面完全加载,我做错了吗?我读了一堆使用相同语法的stackoverflow示例。基本上我想要完成的是在用户完成编辑ng-grid中的某个单元格(本例中的名称)之前将对象保存到另一个模块之前将对象保存到数据库中。

1 个答案:

答案 0 :(得分:2)

这在这里得到了解决。看看这是否适合你。

http://blogs.microsoft.co.il/choroshin/2014/03/26/angularjs-watch-for-changes-in-specific-object-property/

这是一个带示例的JSFiddle

var app=angular.module('App', []);
function ctrl($scope){
    $scope.count=0;
    $scope.people = [{id:1,name: "bill"}, {id:2,name: "jim"}, {id:3,name: "ryan"}]

    $scope.$watch(function($scope) {
      return $scope.people.
          map(function(obj) {
            return obj.name
          });
}, function (newVal) {
        $scope.count++;
        $scope.msg = 'person name was changed'+newVal;
    }, true);


}

http://jsfiddle.net/byws7/28/