我希望其他控制器应该等待控制器执行 - 在那里发生重要更新(其他控制器依赖于此)。
如下:`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中执行此操作?
答案 0 :(得分:0)
您可以使用角度事件系统,例如广播,在控制器之间发出以控制工作流程。