AngularJS 在替换对象时失去对对象 属性 的监视
AngularJS loses watch on object property when object is replaced
当我用该对象的另一个实例替换包含正在监视的 属性 的对象时...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 包含一个名为投资组合的数组。
我认为问题在于您在将 response.data
分配给 $scope.data
时丢失了 portfolios
属性。因此,ng-repeat
将永远不会呈现,因为在分配 response.data
.
后没有 属性 portfolios
所以,不是看,angular还在看$scope.data
,只是ng-repeat
找不到portfolios
属性 再 Check this plunkr
只需将您的代码更改为
$http.get('data.json')
.then(function (response) {
$scope.data.portfolios = response.data;
});
此外,不要使用 success
,因为它已被弃用
另一个场景 which is covered in plunkr。让我知道它是否涵盖了您要查找的内容。在这里,我将 property
分配给 $scope.data
当我用该对象的另一个实例替换包含正在监视的 属性 的对象时...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 包含一个名为投资组合的数组。
我认为问题在于您在将 response.data
分配给 $scope.data
时丢失了 portfolios
属性。因此,ng-repeat
将永远不会呈现,因为在分配 response.data
.
portfolios
所以,不是看,angular还在看$scope.data
,只是ng-repeat
找不到portfolios
属性 再 Check this plunkr
只需将您的代码更改为
$http.get('data.json')
.then(function (response) {
$scope.data.portfolios = response.data;
});
此外,不要使用 success
,因为它已被弃用
另一个场景 which is covered in plunkr。让我知道它是否涵盖了您要查找的内容。在这里,我将 property
分配给 $scope.data