我有一个有决心的州:
function config($stateProvider, $urlRouterProvider) {
$stateProvider
.state('emails.list', {
url: "/list/:folder/:page",
parent: 'emails',
templateUrl: "views/emails.list.html",
data: { pageTitle: 'Mail Inbox' },
resolve: {
searchResult: ['Emails', function (Emails) {
return 1;
}]
}
});
}
我有一个控制器用于此状态:
function EmailListCtrl($scope, searchResult, $stateParams, $state) {
...
}
angular.module('peachy').controller('EmailListCtrl', EmailListCtrl);
当我尝试将searchResult
传递给控制器时,我收到错误[$ injector:unpr]。怎么修好? (或者配置上可能有问题)
Angular版本是1.3.6
我的错误:
我使用ng-controller调用了EmailListCtrl。正确的方法是在状态中设置控制器名称:
function config($stateProvider, $urlRouterProvider) {
$stateProvider
.state('emails.list', {
...
controller: 'EmailListCtrl'
});
}
答案 0 :(得分:0)
有一个working plunker。尽量确保即使是EmailListCtrl也能正确地回收所有需要的依赖项:
function EmailListCtrl($scope, result, $stateParams, $state) {
$scope.data = { searchResult : result };
};
EmailListCtrl.$inject = ['$scope','searchResult','$stateParams','$state'];
$inject
包含明确的angluar IoC定义...所以我甚至可以使用结果作为参数名称而不是 searchResult 强>
检查here