【发布时间】:2016-02-04 16:37:30
【问题描述】:
注入应该注入控制器的resolve 的返回对象,但事实并非如此。我正在使用一个承诺,以便控制器在承诺解决之前不会实例化,因为我正在使用 $http 服务进行 HTTP POST。
我还使用$location.path 根据响应数据进行一些重定向。第一个路由将使用它获得的数据重定向到template1 路由。
$routeProvider
.when("/auth/:id", amd.route(
{
controller: 'eventController',
controllerUrl: 'app/controllers/eventController',
resolve: {
returnedData: ['$http', '$location', '$route', '$q', function ($http, $location, $route, $q) {
var id = $route.current.params.id;
var defer = $q.defer();
$http({
method: 'POST',
url: 'http://domain/service/webapi',
data: { 'name': id }
}).then(function (response) {
var template = "/template".concat(response.data.displayLayout);
defer.resolve(response.data);
$location.path(template);
return defer.promise;
});
}]
}
}))
.when("/template1", amd.route(
{
templateUrl: 'views/templates/template1.html',
controller: 'eventController',
controllerUrl: 'app/controllers/eventController',
}));
app.controller('eventController', ['$scope', '$routeParams', '$timeout', 'returnedData',
function ($scope, $routeParams, $timeout, returnedData) {
// ...controller code here: $scope.returnedData = returnedData
});
我收到 AngularJS 错误:
错误:$injector:unpr 未知提供者
对此有什么想法吗?
【问题讨论】:
标签: javascript angularjs ngroute