我有两个控制器
angular.module('myApp.controllers', [])
.controller('Controller1',function(){
getController1();
})
.controller('Controller2',function(){
getController2();
})
我在GET服务中有一些$ http功能:
.service("geInfo", function() {
})
我希望我的控制器只有在我获得服务数据时才会启动。 我必须使用$ q(承诺),$ watch或其他什么? 有人可以举例吗?
谢谢!
答案 0 :(得分:0)
您必须在配置阶段解决它:
(function() {
'use strict';
angular
.module('dashboardApp', [
'ngRoute'
])
.config(config);
/* @ngInject */
function config($routeProvider) {
$routeProvider
.when("/youUrl", {
templateUrl: "youtTemplate.html",
controller: "yourController",
resolve: {
initInfo: function(infoService){
return infoService.getInfo();
}
}
});
}
})();
现在你的控制器中有initInfo
:
.controller('Controller2',function($scope, initInfo){
$scope.info = initInfo;
})
通过这种方式,路由器不会加载视图,直到您的服务返回initInfo。