2

所以最近我一直在更新如下所示的内容:

$scope.arrayOfThings = [];

function setArrayOfThings() {
     thingsService.get().then(function (things) {
         $scope.arrayOfThings = things;
     });
}

$scope.$on('arrayOfThings.add', setArrayOfThings);

看起来更像这样(使用鲜为人知的承诺集成到绑定中......):

$scope.arrayOfThings = thingsService.get();

但是,当集合从另一个更改时,我如何强制arrayOfThings更新(或重新解决?)$scope

4

2 回答 2

0

您需要监视控制器中的服务调用 thingsService.get,您希望收到更改通知。像这样:

$scope.$watch(thingsService.get, function(newVal, oldVal){
  $scope.arrayOfThings2 = newVal;  
} );

这是假设您将该服务注入到新控制器中。

于 2013-08-30T14:02:01.577 回答
0

arrayOfThings 只能在子范围内看到,因此子范围内 arrayOfThings 的任何更改都将保持数据绑定。如果 arrayOfThing 从事件(DOM 事件、$broadcast 等)更改,则数据绑定必须由 $scope.$apply 手动解析

于 2013-08-30T13:10:34.557 回答