我想看一个$ rootScope变量。
当我明确注册观察者时,它可以工作并更新 bar :
$rootScope.$watch('foo', function(newVal) {
$scope.bar = newVal;
});
但是当我将 bar 分配给$ rootScope的 foo 时,它不会更新。它不应该隐式地为这个表达式分配观察者吗?
$scope.bar = $rootScope.foo;
顺便说一下, foo 最初是一个空对象,它会更新为 {' test':' something'} 稍后。
更新
现在很清楚,这个表达式不会分配观察者并自行更新。那么,有没有办法在控制器中没有监视功能的情况下更新栏?
承诺是否可用于此目的?我认为Restangular可以这样做:
$scope.list = Restangular.all('accounts').getList().$object;
答案 0 :(得分:3)
不,因为这不是javascript的工作方式。如果你在角度之外尝试了类似的东西,你会发现没有什么会更新:
var temp = 4;
var temp2 = temp;
temp = 5;
console.log(temp2); //outputs 4
它对其他事物(例如对象)起作用的原因是因为它们被引用。这个例子可行:
var temp = { value: 4 };
var temp2 = temp;
temp.value = 5;
console.log(temp2); //outputs { value: 5 }
修改强>
如果没有看到您的其他代码并根据您的评论,我会假设您销毁了您的参考。虽然我上面的例子可行,但这个例子不会:
var temp = { value: 4 };
var temp2 = temp;
temp = { value: 5 };
console.log(temp2); //outputs { value: 4 }