更换对象时,AngularJS会丢失对象属性的监视

时间:2018-05-25 23:45:27

标签: angularjs angularjs-ng-repeat

当我替换包含正在被该对象的另一个实例观看的属性的对象时...... AngularJS似乎失去了对该属性的引用......我能理解......但是什么是好方法例如,在ng-repeat指令中重新连接成员属性。例如......

HTML

<div ng-repeat="portfolio in data.portfolios">
  {{ portfolio.name }}
<div>

JS

$scope.data = {};
$scope.data.portfolios = [
    { Name: "aaa" },
    { Name: "bbb" }
];

 $scope.portfoliosService.loadPortfolios(clientId, true, true)
    .success(function (response) {
        $scope.data = response.data;
    });

注意:response.data包含一个名为portfolio的数组。

1 个答案:

答案 0 :(得分:1)

我认为问题在于,在portfolios分配response.data时会丢失$scope.data属性。因此,ng-repeat永远不会呈现,因为在分配portfolios后没有属性response.data

所以,它不是关于观看,角度仍然在关注$scope.data,只是ng-repeat无法找到portfolios属性Check this plunkr < / p>

只需将代码更改为

即可
$http.get('data.json')
 .then(function (response) {
    $scope.data.portfolios = response.data;
});

此外,不要使用success,因为它已被弃用

另一种情况which is covered in plunkr。如果它涵盖您所寻找的内容,请告诉我。在这里,我已将property分配给$scope.data