相关疑难解决方法(0)

如何深度观察angularjs中的数组?

我的范围中有一个对象数组,我想要观察每个对象的所有值.

这是我的代码:

function TodoCtrl($scope) {
  $scope.columns = [
      { field:'title', displayName: 'TITLE'},
      { field: 'content', displayName: 'CONTENT' }
  ];
   $scope.$watch('columns', function(newVal) {
       alert('columns changed');
   });
}
Run Code Online (Sandbox Code Playgroud)

但是当我修改值时,例如我TITLE改为TITLE2,alert('columns changed')从不弹出.

如何深入观察数组内的对象?

有一个现场演示:http://jsfiddle.net/SYx9b/

watch angularjs

318
推荐指数
6
解决办法
21万
查看次数

AngularJS监视数据更改对象的数组

我正在实现购物车,并希望将数据存储在localStorage中.我想观察变量$scope.cart的变化,以便我可以更新localStorage

cart变量如下所示:

[{'name':'foo', 'id':'bar', 'amount': 1 },...]
Run Code Online (Sandbox Code Playgroud)

这是手表的代码.

$scope.updateCart = function(){
    localStorageService.add('cart',JSON.stringify($scope.cart));
    alert('cart updated');
};

$scope.$watch($scope.cart, $scope.updateCart(), true);
Run Code Online (Sandbox Code Playgroud)

这是用户更改模型的HTML.

<li ng-repeat="item in cart">
  {{item.name}} <input type="text" ng-model="item.amount">
</li>
Run Code Online (Sandbox Code Playgroud)

使用以下代码,updateCart()永远不会触发该方法.我不确定我做错了什么.我检查$scope.cart变量确实发生了变化,但未触发更新.

watch angularjs

36
推荐指数
2
解决办法
7万
查看次数

如何获得angularjs中更改的对象?

我使用此函数来观察对象数组的变化:

$scope.$watch('Data', function (newVal) { /*...*/ }, true);
Run Code Online (Sandbox Code Playgroud)

如何获取一个已更改属性的对象,以便我可以将其推送到数组中?例如:

var myApp = angular.module("myApp", []);

myApp.factory("Data", function(){
var Data = [{id:1, property: "Random"}, {id:2, property: "Random again"}];
return Data;
});

var myBigArray = [];

function tableCtrl($scope, Data){
    $scope.TheData = Data;
    $scope.$watch("TheData", function() {

    //Here an object should be pushed
    myBigArray.push(">>Object in which property has been changed <<<");
    }, true);
}
Run Code Online (Sandbox Code Playgroud)

get object watch angularjs

6
推荐指数
1
解决办法
3972
查看次数

标签 统计

angularjs ×3

watch ×3

get ×1

object ×1