AngularJS теряет наблюдение за свойством объекта при замене объекта - PullRequest
0 голосов
/ 26 мая 2018

Когда я заменяю объект, который содержит свойство, за которым следят, другим экземпляром этого объекта ... 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 содержит массив с именами портфелей.

1 Ответ

0 голосов
/ 26 мая 2018

Думаю, проблема в том, что вы теряете свойство portfolios при присвоении response.data $scope.data.Таким образом, ng-repeat никогда не будет визуализироваться, так как нет никакого свойства portfolios после присвоения response.data.

Итак, это не о наблюдении , angular все еще наблюдает за $scope.data, егопросто ng-repeat не может найти portfolios свойство больше Проверьте этот план

Просто измените свой код на

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

Также, Не используйте success как устаревший

Еще один сценарий , который описан в plunkr .Дайте мне знать, если это покрывает то, что вы искали.Здесь я назначил property $scope.data

...