我尝试解析多个服务到我的控制器,第二个服务依赖于第一个解析第一,因为它需要一些数据,以包括作出请求。
下面是我想做的事情,以及我认为它应该如何工作,但是,我似乎无法访问第一个resolveData请求中返回的数据。
如有任何建议或想法,我们将不胜感激
.when('/maps/:id', {
templateUrl: 'partials/maps/view',
controller: 'MapViewCtrl',
authenticate: true,
resolve: {
resolveData: function ($route, MapService) {
var data = MapService.showfull({id: $route.current.params.id});
return data.$promise;
},
resolveMoreData: function($route, Service, resolveData){
var returnData = Service.get({id: resolveData.id});
return returnData.$promise;
}
}
})
2条答案
按热度按时间czfnxgou1#
在路由定义中解析的值不能相互依赖。它们旨在由该路由的控制器使用。
有关参考,请参见$routeProvider源代码的以下部分:
您可以通过以下两种方式解决此问题:
resolveMoreData
逻辑移入控制器第二个选项可能如下所示:
(note上面的代码只是一个例子,我还没有运行它)。
zpgglvta2#
应该在方括号[]中或使用注解注入依赖项