如何使其他控制器等到一个控制器在AngularJS中执行

时间:2015-04-12 12:27:19

标签: javascript angularjs

我希望其他控制器应该等待控制器执行 - 在那里发生重要更新(其他控制器依赖于此)。

如下:`app.controller(' locCtrl',function($ rootScope,$ scope){

$scope.change = function(){
$rootScope.userLocUrl="api.openweathermap.org/data/2.5/weather?q="+$scope.city+","+$scope.country;
$rootScope.flag="y";
};

$scope.showU = function(){
return $rootScope.userLocUrl;
};   

});`

$ rootScope变量的值 - " userLocUrl"部分是由文本框中的用户输入形成的 - 我与ng-model绑定并引用$ scope变量" city" &安培; "国家"

其他控制器引用 - userLocUrl如下:

app.controller('tempCtrl', function($rootScope,$scope,$http) {

$scope.temp = {};   

if($rootScope.flag=="y"){

$http.get($rootScope.userLocUrl)
.success(function (data) {
        alert("temp");
        angular.element('#temperature').scope().temp = data;
        angular.element('#temperature').scope().$apply();
        });
//alert("Almost at end");
}

});

所以我希望它们只在第一个控制器执行后执行,并将2 $ rootScope变量设置为适当的值。

如何在AngularJS中执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以使用角度事件系统,例如广播,在控制器之间发出以控制工作流程。