Javascript 将角度解析值传递到控制器时出现问题
如何将resolve validToken值传递给控制器 配置:Javascript 将角度解析值传递到控制器时出现问题,javascript,angularjs,Javascript,Angularjs,如何将resolve validToken值传递给控制器 配置: .config(['$routeProvider', function($routeProvider) { $routeProvider.when('/recover/:token', { templateUrl: 'recover.html', controller: 'recoverCtrl', resolve: { validToken : function(){
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/recover/:token', {
templateUrl: 'recover.html',
controller: 'recoverCtrl',
resolve: {
validToken : function(){
return "INVALID TOKEN"
}
}
});
}])
控制器:
.controller('recoverCtrl', ['$location','$scope','$http', '$routeParams', '$rootScope',
function($location,$scope,$http,$routeParams,$rootScope,validToken) {
console.log(validToken);
// Rest of controller code.
}
]);
我希望在不删除[]
的情况下执行此操作,以便代码最终可以精简。下面的示例按照我的预期工作,因此我知道我的所有代码都可以正常工作,我只是不确定应该向上面的代码中添加什么,以使其功能类似
.controller('recoverCtrl', function($location,$scope,$http,$routeParams,$rootScope,validToken) {
console.log(validToken);
//Other code
});
多亏了埃特苏斯才弄明白 我只需要在注入时将对象键添加为字符串,它就能够确定它是一个解析键
.controller('recoverCtrl', ['$location','$scope','$http', '$routeParams', '$rootScope', 'validToken', function ($location, $scope, $http, $routeParams, rootScope, validToken) {
console.log(validToken);
}]);
你期望它如何工作<代码>validToken不会被注入,因为它不在依赖项数组中。把它当作其他依赖项传递。谢谢@estus,我发誓我曾经试过,但没有成功。不客气。DI在引擎盖下是非常简单的,所以它为什么不能工作仍然是个谜。例如,如果控制器不是路由控制器,而是视图中的嵌套控制器,则这将不起作用。