问题标签 [angular-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.

0 投票
2 回答
5408 浏览

angular - 创建已弃用:从 v5 开始使用新签名 Injector.create(options)(弃用)

我有一个TabService将标签注入到mat-tab-groups

在构造函数中,我从 @angular/core 注入了 Injector 实例

然后我使用 create 方法创建新选项卡或注入现有选项卡,如下所示:

我收到了这个警告:

新签名是Injector.create什么?

0 投票
1 回答
1244 浏览

angular - 如何在没有组件的情况下从Angular 9+中的延迟加载模块动态注入服务?

我正在尝试从组件内的延迟加载模块访问服务实例。该模块没有任何组件可用于基于构造函数的注入。Android 文档没有帮助,我在 Medium 和类似网站上找到的所有各种教程都不适用。

这是执行服务延迟加载的组件的代码。

问题是在当前组件中包含 LazyService 会破坏延迟加载的目的,并且 get() 方法似乎想要一种类型,只为这种方法创建鸡蛋问题。我将 InjectionToken 作为另一种选择进行了研究,但它需要一个通用定义,该定义再次需要导入 LazyService。

谁能解释应该如何完成延迟服务加载?

0 投票
1 回答
164 浏览

angular - Angular 11 将 URL 注入服务

我有 2 层服务,并希望使用 Angular(版本 11)注入重构它们。

  1. 一个基础服务,它调用一个后端并且有一堆关于如何处理数据和安全的逻辑。这是构造函数:
  1. 特定服务,基本上是配置新的基础服务并将组件的所有调用委托给基础服务:

问题:由于每个特定的服务并没有真正做太多,如何使用注入来重构上述设置?

0 投票
1 回答
748 浏览

angular - Angular 中的 @SkipSelf 装饰器是什么?

@SkipSelf 装饰器告诉 DI 从父注入器开始在整个树中查找依赖项

我遇到了@SkipSelf 装饰器,如下所示。在这种情况下,这个@SkipSelf装饰器到底意味着什么?

0 投票
2 回答
686 浏览

angular - Angular 将服务限制为仅一个组件树

我想实现一项服务,让它只提供给一个命名组件或模块,而不提供给任何其他组件或模块。

因此,每当有人试图向另一个组件提供该服务时,他们都会遇到错误并且程序不应编译。

有没有办法做到这一点?

提前致谢。

编辑:

我猜你误解了我的问题。我是说除了一个组件树之外,没有开发人员可以将该服务添加到提供程序数组中的任何位置。

0 投票
1 回答
5596 浏览

angular - 错误:未捕获(承诺):NullInjectorError:R3InjectorError(AppModule)[baseURL]

请帮助..我被角HTTP困在这里
我试图
在我运行的json服务器上使用cmd从JSON服务器获取JSON数据和图片(json-server --watch db.json)......然后= =>

我的服务器结构

我有以下错误!!?

菜服务.ts

disc.ts(只是从 json 服务器获取数据的类)

共享文件夹 > baseurl.ts

menu.component.ts

menu.component.html

app.module.ts

0 投票
0 回答
14 浏览

angular - 如何使用特定的喷射器为给定的角度路线构造组件

我想指定在为角度路径构建组件时要使用的注入器。例如,我很惊讶Route只指定component?: Type<any>而不提供使用 a 的选项componentFactory

我的用例是这样的:

我有与BSModalService. 这些组件是模态对话框。它们注入到构造函数中,当单击关闭按钮时BSModalRef,此引用用于对话框。hide()

我还想将这些弹出窗口用作全屏组件,以便它们可以在自己的窗口中启动。为此,我使用此组件设置了一条路线。当在他们自己的窗口中启动时,我想BSModalRef用我自己的实现替换注入,这将关闭窗口而不是隐藏对话框。为此,我需要修改注入器中的提供程序——但仅限于这条路线。

有没有办法为给定的路由组件指定注入器或修改为给定路由构建组件的方式?

0 投票
0 回答
29 浏览

angular - Angular - 内容提供者

是否可以将提供者从视图组件“传递”到内容组件?

我一遍又一遍地面临这个问题,既找不到解决方案,也找不到设计上不可能的信息(文档)。

如果我在模板中有一个组件,则可以将其注入子组件的构造函数中(这当然可以):

结果:

但是,如果我要注入的组件是其他组件视图的一部分,是否有可能实现这一点?

这种情况不起作用:

结束于NullInjectorError: R3InjectorError(AppModule)[AComponent -> AComponent -> AComponent]: NullInjectorError: No provider for AComponent!

有没有办法在 CComponent 中编写这样的提供程序(或 viewProvider),从它的模板/视图中提供可注入对象?

0 投票
1 回答
40 浏览

angular12 - 模板引用属性缺失

我正在将我的 angular 11 项目转换为 angular 12 并且我面临一些问题。在一个 ngx-nestable 组件中,它在 angular 11 中工作正常,但是当我将它更新到版本 12 时,它向我显示了一些错误,请检查屏幕截图。在此处输入图像描述

这是我的 .ts 文件代码:

这是我的html代码

请告诉我应该在代码文件中更改或添加什么,以便它开始工作。我试图找到一个解决方案很多天,但无济于事。

谢谢

0 投票
0 回答
67 浏览

angular - 按名称在另一个管道中使用管道

我的意图是使用另一个管道(DynamicPipe)中的一个管道(LanguagePipe):

这运作良好。我想要做的是定制它,这样我就可以使用另一个管道而无需导入和声明它。

但后来我得到这个错误:

在此处输入图像描述

这是我在 Angular 2 中的参考动态管道