【发布时间】:2015-03-10 22:53:51
【问题描述】:
我已尽一切努力让 ui-router 决定将其值传递给给定的控制器——AppCtrl。我正在使用 $inject 的依赖注入,这似乎会导致问题。我错过了什么?
路由
$stateProvider.state('app.index', {
url: '/me',
templateUrl: '/includes/app/me.jade',
controller: 'AppCtrl',
controllerAs: 'vm',
resolve: {
auser: ['User', function(User) {
return User.getUser().then(function(user) {
return user;
});
}],
}
});
控制器
appControllers.controller('AppCtrl', AppCtrl);
AppCtrl.$inject = ['$scope', '$rootScope'];
function AppCtrl($scope, $rootScope, auser) {
var vm = this;
console.log(auser); // undefined
...
}
编辑 这是一个笨拙的http://plnkr.co/edit/PoCiEnh64hR4XM24aH33?p=preview
【问题讨论】:
-
您错过了注入
auser吗?AppCtrl.$inject = ['$scope', '$rootScope', 'auser']; -
注入
auser会导致[$injector:unpr]错误。 :( -
你不能提供ng-controller 你只需要设置路由
-
很棒的输入!它有效:D 你想发布作为答案吗?
标签: javascript angularjs angular-ui-router angularjs-service