问题标签 [angularjs-injector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - 在进入状态之前等待提供者完成
我正在尝试等待提供者在 ui-router 继续加载状态之前完成初始化。
每次您进入该状态时,相机都应该启用,并且每当它再次被禁用时。module.config
我将其放入提供程序中,因为它需要在以下级别可用:
和状态:
我尝试使用$q
创建承诺并使用resolve
等待,但在module.config
级别 $q 无法注入(或者我只是不知道如何?)。
我该如何解决这个问题?
javascript - 未知提供者:$rootElementProvider 使用 $injector 在 angular.bootstrap 之前获取 $location 服务时
您好,我正在尝试手动引导 Angular 应用程序,但有一些业务需要首先处理。这篇文章提到了我感兴趣的技术。
当我注入这个时:
它工作正常,但是这个:
引发以下错误。
是否可以在 angular.bootstrap 之前获得 $location ?
万分感谢!
angularjs - 配置阶段后修改或访问角度拦截器
配置阶段后是否可以访问/修改$http
拦截器?我正在调试一个由于部署在不同的服务器上而只会中断生产的应用程序,所以不幸的是我无法在本地更改拦截器代码并弄清楚发生了什么。
如果无法访问/修改拦截器,也许可以替换$http
. 这是替换假设服务的示例:
但是,我不确定如何创建新$http
服务(我可以将修改后的拦截器传入其中)。我也抢$httpProvider
不到
ng-app
也许在页面的单独部分上引导一个新的会起作用?然后我可以抓住$http
服务并更换它,就像上面一样。
其他想法:
- 参考:在Angular中禁用/删除http拦截器的正确方法?,如果我在配置阶段不保留它,我似乎无法访问拦截器数组。
- 也许我可以使用油脂猴子来注入在配置阶段运行的东西。
谢谢!
javascript - 何时在 AngularJS 中使用 $injector
当我在解析 AngularJS 文档时,我想我会发布这个以获得其他意见。
我的具体情况是,我希望使用模块的 run 方法更改可注射的设置。我有几种不同的方法可以访问注射剂,但不确定使用其中一种方法是否有明显的功能优势。或者他们归结为本质上相同的东西。
比如说我的模块是这样定义的:
现在考虑第三方模块中有一个工厂需要设置变量。这可以通过执行以下操作来完成:
另一种方法是:
一种方法比另一种更好吗?也许我还没有考虑过第三种选择?
angularjs - AngJS - 获取注入的依赖列表
假设我创建了这样的服务:
有没有办法从服务内部检索注入依赖项的名称(以及,显然是对象)列表?我需要这个,因为我有很多依赖项,每个主题都必须做同样的事情,所以我想把主题放在一个循环中
javascript - 未知提供者:userFactoryProvider <- userFactory <- userController
最初,我制作了一个控制器来为我保存数据,它对我有用。然后我把我的数据搬到了一家工厂。我将我的工厂注入控制器。我还将我的模块/控制器/工厂的地址放在我的 HTML 代码中,但我收到“未知提供者”的错误
这是我的工厂代码:
这是我的控制器 condes
angularjs - 基于特征检测的AngularJS服务注入
在我的 Angular 应用程序中,我需要创建一个持久性服务接口,该接口基于浏览器中可用的持久性机制调用具体实现。我正在考虑使用一个通用的 storageService 来实现这个,它调用一个了解存储机制的特定 storageService 。
例如,通用的 storageService 将提供以下接口:
storageService会有多种实现方式,例如localStorageService、indexedDbStorageService、webSqlStorageService。
基于浏览器功能动态注入具体存储服务的最佳方法是什么。例如,
angularjs - $提供外部配置块
我当然错过了关于注射器的一些基本观点,但我不明白为什么会这样
和这个
按预期工作,而这
会抛出
错误:[$injector:unpr] 未知提供者:$provideProvider <- $provide
从上面可以看出,config
与提供者有一些特殊的关系,同时run
处理实例,但我不确定是什么让config
块如此特别。
因此,有没有办法到达$provide
外部config
块,例如angular.injector()
(尽管它似乎也获得了提供者实例)?
这个问题,除了单纯的好奇之外,还有一些实际的考虑。在 1.4 中,所有$provide
功能都暴露给模块,但在 1.3 中并非如此。
angularjs - AngularJS 两个不同的 $injector
今天我发现,$injector
注入到配置或提供者与$injector
注入到服务、工厂或控制器不同。
这个 $ injectorsget()
的功能不同。
$injector
来自配置或提供者,不能提供get()
任何服务!$injector.get('myService')
抛出Error: [$injector:unpr] Unknown provider: myService
,但$injector.has('myService')
返回 true。这非常非常奇怪。
$injector
从服务或控制器正常工作。
这是一个代码示例,以便更好地理解:
谁能解释为什么有两种不同的注射器?
以及如何使用 provider/config 中的 $injector 来注入服务(当然是在服务初始化之后)?
PS我使用角度1.3.13
javascript - AngularJS注入器问题
我正在尝试从 AngularJS 调用 WebAPI。这是一个简单的 GET 请求,我在服务器上启用了 CORS。
我收到$injector:unpr Unknown Provider错误。
我有一个名为raterModule.js的角度模块:
一个名为corsService.js的服务,它使用 enable-cors.org 中的代码段:
)
最后是一个名为menuController.js的控制器:
这些都包含在 HTML 索引页面的底部。我希望发生的事情是将corsService注入menuCtrl,然后将menuCtrl添加到raterModule。
menuCtrl 将使用 corsService 创建一个请求,然后将其发送到 WebAPI,避免同源策略问题。
我确定这很简单,但在我的无知中我看不到它。