所以最近我一直在更新如下所示的内容:
$scope.arrayOfThings = [];
function setArrayOfThings() {
thingsService.get().then(function (things) {
$scope.arrayOfThings = things;
});
}
$scope.$on('arrayOfThings.add', setArrayOfThings);
看起来更像这样(使用鲜为人知的承诺集成到绑定中......):
$scope.arrayOfThings = thingsService.get();
但是当从另一个arrayOfThings
更改集合时,如何强制$scope
更新(或重新解析?)?
答案 0 :(得分:0)
arrayOfThings只能在子作用域内看到,因此子作用域中arrayOfThings的任何更改都将保持数据绑定。数据绑定必须由$ scope手动解析。如果从事件(DOM事件,$ broadcast等)更改了arrayOfThing,则应用$ apply
答案 1 :(得分:0)
您需要监视要通知更改的控制器中的服务调用thingsService.get。像这样:
$scope.$watch(thingsService.get, function(newVal, oldVal){
$scope.arrayOfThings2 = newVal;
} );
这假设您正在将该服务注入新控制器。