AngularJS - How can I $watch a deeply nested array?

后端 未结 2 564
盖世英雄少女心
盖世英雄少女心 2020-12-12 00:59

I currently have data that looks like the following:

$scope.boardLists = [{
cards: [{a:1, b:2}, {a:2, b:2}]
},

{
cards: [{a:3, b:3}, {a:4, b:4}]
},

{
cards         


        
相关标签:
2条回答
  • 2020-12-12 01:10

    Scope $watch Depths

    $scope.$watch('boardLists', function(newVal, oldVal){
      console.log(newVal);
      console.log(oldVal);
    }, true);
    

    Use $scope.$watch('item',fn,true); for a deep watch.

    For information, see AngularJS Developer Guide - $scope Watch Depths.

    0 讨论(0)
  • 2020-12-12 01:13

    $watch is a bit expensive, you can try to use $apply

    $scope.$apply(function() {
      // do something with the scope
      $scope.boardList.push({cards:...});
    });
    

    $apply will automatically rerun your templates

    0 讨论(0)
提交回复
热议问题