![](/img/trans.png)
[英]How To Ensure A Function Has Completed Before Calling Another - Promise Chaining Angular JS?
[英]How to ensure a promise.then(func) has run before in another controller?
我在控制器A中有一个Restangular函数,该函数需要设置一个在控制器B中使用的$rootScope
变量。如何确保在初始化控制器B之前运行Restangular函数,或者是否有另一种方式来处理此问题? 谢谢。
处理依赖关系的通常方法是对正在等待的变量使用$scope.$watch
,并使其他代码在回调中响应。
$scope.$watch(function() {
return $rootScope.resultFromControllerA
}, function(result) {
if (result) {
// Configure Controller B
}
})
编辑,只是添加(因为您建议这是一个承诺),只需在根作用域上设置该承诺,然后将其他控制器附加到它:
$rootScope.controllerASetupPromise = Restangular.get()
$scope.$watch(function() {
return $rootScope.controllerASetupPromise
}, function(thePromise) {
if (thePromise) {
thePromise.then(function(response) {
// Configure Controller B
});
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.