$stateProvider 在写resolve的时候,也要写上controller,不能直接在页面上用ng-controller 来指定!!!!
不然的话,就是报依赖注入异常,找不到该provider。
事情经过:
今天在写$stateProvider resolve的时候一直报controller 无法找到该provider
错误代码如下:
// Router 路由层 var articleModel = angular.module(‘SEProjectApp.articles‘).config([‘$stateProvider‘, function($stateProvider) { // Articles state routing $stateProvider .state(‘app.articles‘, { abstract: true, url: ‘/articles‘, template: ‘<ui-view/>‘ }) .state(‘app.articles.list‘, { url: ‘/list‘, templateUrl: ‘modules/articles/client/views/list-articles.client.view.html‘, resolve: { simpleObj: function() { return { value: ‘simple!‘ }; } } }) } ]);
// Controller 层 angular.module(‘SEProjectApp.articles‘).controller(‘ArticlesController‘, ["simpleObj", function (simpleObj) { .... 略 }]);
// 页面代码 <section ng-controller="ArticlesController" ng-init="find()"> .... 略 </section>
后来,在router层的state中指定 controller: ‘ArticlesController‘ 并且将页面中的ng-controller的指令去掉,才成功运行。