gpt4 book ai didi

angularjs - Angular 将 $http 注入(inject)配置或提供程序以运行

转载 作者:行者123 更新时间:2023-12-03 08:19:32 28 4
gpt4 key购买 nike

我在我的 angular 应用程序中使用 angular-route-segment 并尝试从 json 提要配置段。

我有这个问题,因为我不知道如何注入(inject) $http进入app.config功能。这失败了 Unknown provider: $http

myApp.config(["$http", "$routeSegmentProvider", function ($http, $routeSegmentProvider) {
/* setup navigation here calling $routeSegmentProvider.when a number of times */
}

所以不要将 $http 注入(inject) config ,我也试过注入(inject) $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

最佳答案

提供者只能在“配置”阶段而不是“运行”阶段注入(inject)。相反,像 $http 这样的服务在“config”阶段还没有被初始化,只能在“run”阶段使用。

解决这个问题的一个小技巧是在父函数范围内定义一个变量,以便“config”和“run” block 都可以访问它:

var routeSegmentProvider = null;

myApp.config(["$routeSegmentProvider", function ($routeSegmentProvider) {
routeSegmentProvider = $routeSegmentProvider;
}]);

myApp.run(["$http", function($http) {
// access $http and routeSegmentProvider here
}]);

我不确定您是否会在尝试在运行阶段调用 $routeSegmentProvider.setup() 时遇到问题,因为我没有尝试过。在过去,我能够使用相同的技术来注册依赖于 $httpProvider 的一些自定义服务的 http 响应拦截器。

关于angularjs - Angular 将 $http 注入(inject)配置或提供程序以运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25644039/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com