我在我的角应用程序中使用angular-route-segment并尝试从json Feed配置段.
我有这个问题,因为我无法弄清楚如何将$http注入app.config函数.使用未知提供程序失败:$http
myApp.config(["$http","$routeSegmentProvider",function ($http,$routeSegmentProvider) { /* setup navigation here calling $routeSegmentProvider.when a number of times */ }
因此,我没有在配置中注入$http,而是尝试将$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)
但是我得到了未知的提供者:$routeSegmentProviderProvider< - $routeSegmentProvider
提供者只能在“配置”阶段而不是“运行”阶段注入.相反,$http等服务尚未在“配置”阶段初始化,只能在“运行”阶段使用.
原文链接:https://www.f2er.com/angularjs/143821.html解决这个问题的一个小技巧是在父函数范围中定义一个变量,以便“config”和“run”块都可以访问它:
var routeSegmentProvider = null; myApp.config(["$routeSegmentProvider",function ($routeSegmentProvider) { routeSegmentProvider = $routeSegmentProvider; }]); myApp.run(["$http",function($http) { // access $http and routeSegmentProvider here }]);
我不确定你是否会在运行阶段尝试调用$routeSegmentProvider.setup()时遇到问题,因为我没有尝试过.在过去,我能够使用相同的技术来注册依赖于某些自定义服务的http响应拦截器和$httpProvider.