我在我的angular应用程序中使用了angular-route-segment,并尝试从json提要中配置分段。
我对此有问题,因为我不知道如何将$http注入到app.config函数中。对于Unknown provider: $http,此操作失败
myApp.config(["$http", "$routeSegmentProvider", function ($http, $routeSegmentProvider) {
/* setup navigation here calling $routeSegmentProvider.when a number of times */
}因此,我没有将$http注入config,而是尝试将$routeSegmentProvider注入myApp.run
myApp.run(["$http", "$routeSegment", function($http, $routeSegment) {
/* can use $http here to get data, but $routeSegment is not the same here */
/* $routeSegment does not have the when setup method */
}]);我也试过了
myApp.run(["$http", "$routeSegmentProvider", function($http, $routeSegmentProvider)但我得到了Unknown provider: $routeSegmentProviderProvider <- $routeSegmentProvider
发布于 2014-09-03 20:24:14
提供者只能在"config“阶段注入,而不能在"run”阶段注入。相反,像$http这样的服务在“配置”阶段还没有初始化,只有在“运行”阶段才可用。
解决这个问题的一个小技巧是在父函数作用域中定义一个变量,以便"config“和"run”块都可以访问它:
var routeSegmentProvider = null;
myApp.config(["$routeSegmentProvider", function ($routeSegmentProvider) {
routeSegmentProvider = $routeSegmentProvider;
}]);
myApp.run(["$http", function($http) {
// access $http and routeSegmentProvider here
}]);我不确定在run阶段尝试调用$routeSegmentProvider.setup()时是否会遇到问题,因为我还没有尝试过。在过去,我能够使用相同的技术向$httpProvider注册依赖于某些自定义服务的http响应拦截器。
https://stackoverflow.com/questions/25644039
复制相似问题