AngularJS .run()导致初始视图无法加载

时间:2015-01-19 10:01:44

标签: javascript angularjs angularjs-routing

我在main angular.js文件中有以下设置

var application = angular.module('application', [...]).config([..., function(...) {

    //Setup routes
    $routeProvider...

}]).

directive('applicationDirective', function() {
    ...
}).

controller('main-controller', ['$scope', function($scope) {
    ...
}]).

run(['$rootScope', '$location', function($rootScope, $location) {
    //Empty
}]);

目前,该应用程序包含两个页面,即登录页面和仪表板页面。 $routeProvider配置为在$config指令中为每个路由加载特定视图和控制器。

如果没有.run(...);功能,这一切都可以正常工作。

当我将.run(...)函数添加到结尾时,即使正文为空,似乎$ routeProvider不会立即运行,初始视图也不会加载到'/ dashboard '或'/ login'但是如果我打开这些页面的链接一旦打开就可以了。

有没有人知道为什么我在使用运行块时没有正确加载视图和控制器?

1 个答案:

答案 0 :(得分:0)

尝试按此顺序使用:

var application = angular.module('application', [...])
.config([..., function(...) {

    //Setup routes
    $routeProvider...

}])
.run(['$rootScope', '$location', function($rootScope, $location) {
    //Empty
}]); 

angular.module('application')
.directive('applicationDirective', function() {
    ...
})
.controller('main-controller', ['$scope', function($scope) {
    ...
}]);