问题标签 [angular-di]

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.

0 投票
1 回答
836 浏览

angular - Angular:如何通过控制台获取组件依赖关系?

我将重点放在开发工具中的组件元素上,并且可以执行以下操作:

获取特殊对象“ DebugElement ”。现在我们可以得到它的注入器:

现在我想获得一个在这个组件上定义的依赖。依赖被定义为一个类,所以我应该这样做:

但!服务未在控制台范围内定义。如果我把它变成一个字符串:

显然它也不起作用。

我正在尝试对ReflectiveInjector.get进行逆向工程,但现在没有运气。有任何想法吗?

0 投票
3 回答
15643 浏览

angular - useClass 与 useExisting

我们什么时候应该使用useExistingprovider 而不是useClass


备注:我还没有找到关于 SO 的确切问题。为了更好的索引决定在这里创建这个特定的索引,尽管我找到了这个答案:

但希望有更多真实的例子

0 投票
1 回答
404 浏览

angular - 我可以使用自定义 ReflectiveInjector 策略来获取组件提供者吗?

众所周知,我们对提供商有不同的策略:useClass, useExisting, useFactory, useValue. 但是如果我想添加自己的策略怎么办?就像是:

扩展 ReflectiveInjector并使 Angular 使用您的扩展变体的最佳方法是什么?我找到了定义它的地方,但仍在寻找一种方法来覆盖现有的 Angular DI 机制。


PS:请不要问我为什么需要它,为什么不使用现有的策略。我正在研究 Angular DI,答案将帮助我更好地理解它。

0 投票
1 回答
3733 浏览

angular - 如何为多个组件只保留一个服务实例?

我使用DI在几个组件中注入服务。现在它不是一个常见的实例。

如何为多个组件只保留一个服务实例?

我尝试app.module在部分中加载服务providers

0 投票
2 回答
972 浏览

angular - 如何在工厂提供程序(Angular4)中获取 QueryParam

我想根据来自 url 的 QueryParam 在我的应用程序中提供一个常量。

在我的模块提供程序中,我添加了

所以我很感兴趣,如果有一种方法可以在不手动解析 url 的情况下做到这一点

0 投票
1 回答
396 浏览

angular - 为什么 markForCheck() 只适用于一个分支?

很明显,我们需要使用markForCheck()和 OnPush 策略来标记组件进行 CD 检查,但是

我试图弄清楚为什么只检查一个分支:

在此处输入图像描述

为什么可以为整个应用程序或仅特定组件运行 CD,不是吗?

0 投票
1 回答
2088 浏览

angular - 如何将依赖项传递给@auth0-angular-jwt?

所以...我正在迁移使用HttpModuleand angular2-jwtlib 的“旧”代码。

之前,我可以angular2-jwt使用以下配置:

...但是现在,要将它与新版本HttpClientModule一起使用,我必须使用版本的angular2-jwt@auth-angular-jwt - 我知道它仍处于测试版)并且我试图弄清楚我需要做访问我的服务以获取令牌(就像我以前那样)。

我的实际配置是(与 git 的示例相同):

可能吗?提前致谢。

0 投票
1 回答
1144 浏览

angular - 如何向注入器添加另一个提供程序?

表达这个问题的一种与框架无关的方式是“如何使用服务定位器注册另一个服务?”

Injector 被设置为不可变的,无论是接口还是实现。

接口https://github.com/angular/angular/blob/master/packages/core/src/di/injector.ts 实现https://github.com/angular/angular/blob/master/packages/core/src /di/reflective_injector.ts

你如何添加另一个提供者(动态地,而不是通过模块)?

当 Angular 在引导后加载新模块时(例如通过路由器),它自己是如何做到这一点的?

0 投票
1 回答
469 浏览

angular - 使用 AoT 编译的 useFactory 与 useValue

window.location用来设置注射。在我靠近导入的模块中,我定义了变量

并且它可以与 JIT 编译按预期工作但是当我切换到 AoT 时,它 useFactory在两种情况下都无法正常工作

为什么我得到undefinedwithuseValuetruewith useFactory

0 投票
1 回答
4626 浏览

angular - Angular 中的 StaticInjector 与 ReflectiveInjector

Angular 5.x 将包含这条推文StaticInjector中提到的新功能。我有两个问题:

  • 它与现有的 ReflectiveInjector 有何不同?
  • 它会破坏我现有的任何代码吗?