问题标签 [angular-dependency-injection]
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.
angular - 执行服务中的方法时如何触发组件中的方法?
我有一个图表配置(使用 amCharts),其中为项目符号注册了一个 eventListener。此事件侦听器触发我的图表服务中的另一个函数。
我想在图表服务中的 eventListener 被触发后立即在我的组件中触发一个方法。我怎样才能最好地用 Angular 解决这个问题?
我的服务(chart.service.ts)如下所示:
我的组件中应该触发的方法(chart.component.ts):
angular - Angular:不同路线的依赖注入
我有一个 Angular 应用程序,它具有每个功能模块的架构。我有一个OrdersModule
类似的组件ListOfOrders
,DetailOfOrder
或者EditOfOrder
所有这些组件都需要OrdersApiService
在构造函数中,它基本上是一个简单的服务,它使用 REST API 后端通过 HTTPS 提供 CRUD 操作。
OrdersModule
与一个名为Order的实体一起工作
我收到了一个功能请求,我将在其中实施新实体,称为Draft Order。实际上, Draft Order和Order之间没有区别(它们包含完全相同的属性,它们以相同的方式创建)但它们必须以不同的方式存储,它们具有不同的 API 端点(myApi.com/orders
vs myApi.com/draft-orders
)
最简单的方法(从花费时间的角度来看)是将订单复制/粘贴到新模块。但是,我很想避免代码重复,所以这种方法应该对我有用:
现在我需要根据路由向组件注入不同的服务。我知道解决方法
并在服务中使用ActivatedRoute:
有没有解决方案如何注入整个服务?
谢谢!
angular - 如何在 Angular 中的提供程序配置期间从 useFactory 函数进行 HTTP 调用?
我有下一个提供者配置
如何从 useFactory 函数(initializeKeycloak)进行 HTTP 调用?
我想从资产文件夹中获取这个值
angular - 在 app.routing.module Angular 中使用服务
有没有办法在 Angular 路由模块的路由列表中注入和使用服务以动态更改路由数据?
像这样:
如何在路由数组中实现动态行为,例如设置自定义标题?
angular - 如何以角度提供和注入功能?
我有我需要在任何组件中注入的功能:
我需要注入它并使用:
怎么做?
我做了服务:
当我尝试在组件中使用此服务时,我得到以下信息:
angular - 如何将子类的指令注入组件
我有一个组件应该根据添加到元素的指令来改变其行为。此自定义逻辑在指令中定义,因此在添加新范围/功能时无需修改组件。
在组件构造函数中,我想注入应用于元素的指令。当我知道将使用的确切类时,我可以毫无问题地做到这一点,但我想要的是从 MyDirectiveBase 扩展的任何指令。
如何告诉 DI 框架允许 MyDirectiveBase 的所有子类?
我曾尝试使用注入令牌(multi=true),但这只是给了我一个类/函数数组,而不是元素实例。此外,如果未指定属性,则不应注入任何指令。
示例仓库: https ://github.com/ulvesked/angular-dependency-inject-directive-subclass-to-component
StackBlitz:https ://stackblitz.com/edit/angular-ivy-bihzjv?devtoolsheight=33&file=src/app/app.component.html
angular - 如何在Angular中注入具有构造函数参数的对象?
我非常喜欢 Angular,我想弄清楚如何将参数传递给正在注入组件的对象构造函数。
这是一个例子:
图像捕获.service.ts
图像扫描仪.component.ts
image-scanner. component
我需要向注入的对象传递一些ImageCapture
构造函数参数,一个是正在导入的 SDK 实例,第二个参数是我使用@ViewChild
装饰器获取的 HTML DOM 元素。
我怎样才能做到这一点?
angular - 为什么要在 Angular 中设置依赖项提供程序?
我使用以下代码以 provideIn 作为根创建了一些有角度的服务。
这使得该服务可用于整个应用程序,我可以在任何我喜欢的地方导入它。这似乎很容易做到并且非常直观。但是我正在阅读 Angular 文档并遇到了Angular Dependency providers。我理解它背后的概念是仅将服务公开给那些需要它的组件。但是我不明白这个有什么用?我们可以在根级别提供服务并在需要时访问。配置依赖提供程序是否有任何优化好处,或者仅仅是因为安全原因或任何其他原因?
angular - 如何在 Angular 中使用 DI 为给定类提供实现?
考虑到我有 2 个模块,分别称为 A 和 B。
假设我有这门课。它并不真正“属于”任何模块,因为它是一个普通的旧 Typescript 类,而不是一个Injectable.
凉爽的。然后,假设模块 A 导出了一个注入Greeter
实例的组件。
好的。现在假设模块 B 有一个扩展Greeter
类的服务。模块 B 导入模块 A。
凉爽的。现在,每当我GreetingComponent
在模块 B 中使用时,我都希望GentleGreeterService
注入一个实例。但是,我根本没有得到任何实例,而是NullInjectorError: No provider for Greeter
. 我怎样才能解决这个问题?
javascript - 如何在 Angular 运行时更改提供者 useValue?
我的应用程序的入口点就像www.mywebsite.com/context/token
我在 AppModule 中有一个提供程序,我将其用作所有 API 调用的基本路径:
我的要求是从 Angular 应用程序的入口 URL 中读取令牌并将其添加到提供程序值中,例如:'token/rest/apis'。
如何从条目 url 读取值并动态更新提供程序值?