当对象被替换时,AngularJS失去对对象属性的监视

当对象被替换时,AngularJS失去对对象属性的监视,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,当我用该对象的另一个实例替换包含正在监视的属性的对象时。。。AngularJS似乎失去了对该属性的引用。。。我能理解。。。但是,在ng repeat指令中重新连接成员属性的好方法是什么呢。例如 HTML 注意:response.data包含一个名为portfolions的数组。我认为问题在于将response.data分配给$scope.data时丢失了portfolions属性。因此,ng repeat将永远不会呈现,因为在分配response.data之后没有属性组合 所以,这与手表无关,a

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

HTML


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

我认为问题在于将response.data分配给$scope.data时丢失了portfolions属性。因此,ng repeat将永远不会呈现,因为在分配response.data之后没有属性组合

所以,这与手表无关,angular仍在关注$scope.data,只是ng repeat再也找不到投资组合属性了

只需将代码更改为

$http.get('data.json')
 .then(function (response) {
    $scope.data.portfolios = response.data;
});
另外,不要使用success,因为它已经被弃用了


另一种情况。让我知道它是否涵盖了你要找的东西。在这里,我为$scope.data分配了一个属性

如果您想保留数组中的现有对象,可以使用angular.merge 1.4x+将响应数据与已经存在的客户端信息合并。旁注:。不推荐使用success和.error,而应使用.then。显然,您的$scope.data将更改其内容,因为您正在更改整个引用,请尝试此$scope.data.portfolions=response.dataCheck your capitalize-Name!=name问题是response.data有十几个其他属性。。。所以我不得不一个接一个地复制它们。。。听起来好像,一旦分配了$scope.data。。。无法将html重新连接到新数据?@BrianRice:你能检查一下并让我知道这是否是你所关心的吗?你能创建一个plunkr来更好地解释你的问题吗?我想我的两张照片涵盖了你想要的东西好吧。。。你的例子和我想要的完全一样吗。。。不知道为什么这在我的代码中不起作用。。。将进一步检查。。。谢谢@布莱恩赖斯:当然,只要看看你的情况是否和消化循环有关
$scope.data = {};
$scope.data.portfolios = [
    { Name: "aaa" },
    { Name: "bbb" }
];

 $scope.portfoliosService.loadPortfolios(clientId, true, true)
    .success(function (response) {
        $scope.data = response.data;
    });
$http.get('data.json')
 .then(function (response) {
    $scope.data.portfolios = response.data;
});