问题标签 [injectable]

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 投票
0 回答
320 浏览

angular - 在 Web Worker 中使用 Angular 8 Injectable 服务

我有一个 Angular 应用程序,它初始化 Web Worker 并在其中启动一些渲染操作。Worker 具有辅助类 Renderer 的实例来执行渲染操作。

现在我需要从 RealtimeDataService (@Injectable) 获取实时数据以提供给渲染器。

但是当我在我的助手类 Renderer 中导入服务时(或直接导入工作打字稿文件),编译器向我抛出了这个错误:

./src/app/workers/ecg.worker.ts (./node_modules/worker-plugin/dist/loader.js!./src/app/workers/ecg.worker.ts) 中的错误模块构建失败(来自 . /node_modules/worker-plugin/dist/loader.js):错误:../../../node_modules/@angular/core/core.d.ts(1470,29):错误TS2304:找不到名称'元素'。../../../node_modules/@angular/core/core.d.ts(9115,81):错误 TS2304:找不到名称“HTMLElement”。../../../node_modules/@angular/core/core.d.ts(10194,62):错误 TS2304:找不到名称“节点”。../../../node_modules/@angular/core/core.d.ts(13467,20):错误 TS2304:找不到名称“文档”。../../../node_modules/@angular/core/core.d.ts(13481,13):错误 TS2304:找不到名称“窗口”。

如何在 Web Worker 上下文中使用可注入服务?

0 投票
1 回答
649 浏览

typescript - 如何与 tsrynge 共享相同的依赖注入树?

我希望每个子容器的每个类只有一个实例。

我想在我的 childcontainer 中有一个“singleton”。每个子容器只对所有类进行一次实例化。@singleton 仅在全局容器中解析。

我怎样才能做到这一点?

0 投票
1 回答
604 浏览

javascript - Nest 无法解析自定义服务的依赖关系

我基本上按照本教程进行了非常小的修改:链接

我在节点 12.10.0 上使用嵌套 6.14.2。运行我的应用程序时,我得到:

我的文件如下所示:

1.app.module.ts

2.reconQuery.service.ts

3.reconQuery.interface.ts

4.reconQuery.module.ts

我想知道为什么它会为 ReconQuery模型哭泣,因为我没有这样的实体,只有一个 ReconQuery 接口。

0 投票
1 回答
240 浏览

angular - 组件更改时注入令牌未重置

我不确定这里的小细节,所以也许这甚至不应该工作 - 但似乎应该有一些解决方案。我有一个在选项卡中使用两个子组件的父组件,如下所示:

父级还有一个刷新组件,负责刷新两个选项卡中的数据。每个子组件都注入一个实现 Refreshable 接口的服务:

  • 子组件 1:constructor(private service1: Service1)
  • 子组件 2:constructor(private service2: Service2)

每个服务看起来像这样(将 1 替换为 2 用于第二个服务):

refersher-component看起来像这样:

发生的情况是,当我加载页面时(默认为第一个选项卡),console.log输出 Service1. 但是,当切换到 Tab 2 时,再次调用了构造函数,但它也输出了 Service1。因此刷新也是对Service1的数据进行的,不影响Service2。

这是正常行为吗,因为路线没有改变,我需要添加一些东西来重置服务吗?一般来说,有没有一种简单的方法来解决这种行为?(角度 8)

0 投票
0 回答
43 浏览

angular - Angular Singleton Injectable 服务不起作用

我有一项设置为可注入的服务,该服务具有我想在两个组件之间共享的属性。每个组件都有一个单独的路由

这是我的服务:

我想分享的正确的是 isAuth 我将服务作为提供者添加到 app.model.ts

这是 2 个组件 1. 将值设置为 true 的 home 组件

2.第二个组件登录组件此时只显示isAuth的值。

是否有从主组件导航到登录组件的特定方法,以使服务不会再次重新初始化?

因为当我导航到 localhost:4200/login 时,isAuth 被重置并且服务被重新初始化。

我正在尝试实现 OpenIdConnect 身份验证,而 /login 组件是我的 URI 重定向,因此我想确保我的授权属性在我的应用程序中是全局的。

我可能遗漏了一些东西你能帮忙吗?

0 投票
1 回答
73 浏览

angular - 将数据保存在 observable (ionic 4)

我想在登录后保存用户数据,然后在个人资料页面中检索数据。我有一个简单的user.service.ts

成功更新了行为主体。

后来我尝试访问profile.page.ts中的 observable

但我的回答是空的

我已将 user.service.ts 放在 app.module 和 profile.module 的提供者中,但我可能会错过其他内容。

0 投票
1 回答
480 浏览

flutter - 带参数的单例注入

我确实想使用包get_itinjectionable。他们都很棒,但我面临一个问题。也许我的想法是错误的。

我的应用程序有两个单例,我想为不同的应用程序风格使用不同的基本 url。所以我用 baseUrl 值向单例构造函数添加了一个参数。

现在的问题是,injectable 只有@factoryParam作为注释。名字就说明了问题。它不适合单身人士。

该问题的最佳实践是什么?我是否应该摆脱构造函数注入并在单例中注入 baseUrl

或者这不是最好的主意吗?

0 投票
3 回答
396 浏览

angular - Angular 服务中的providedIn 属性不起作用

我正在学习 Angular DI,但提供的示例 ( https://angular.io/guide/providers#providedin-and-ngmodules ) 不起作用任何人都可以帮助我理解这里是我正在研究的 Stackblitz 的链接。 https://stackblitz.com/edit/angular-ivy-k1gvth 谢谢,Keshav

0 投票
1 回答
185 浏览

flutter - 从另一个 bloc 内部向该 bloc 添加事件时不调用 BlocBuilder 的 build 方法

我已经bloc A创建并提供了我的应用程序的所有小部件。

Bloc Bscreen 1.

Bloc B具有对 的引用并且Bloc A可以将事件添加Bloc AmapEventToState.Bloc B

现在奇怪的事情:

BlocBuilder在屏幕 1内Bloc A,我有一个

如果我直接添加事件(状态改变时调用)blocAReference.add(blockAEvent)BlocBuilder

但是,当我将事件间接添加到Bloc AblocBrefrence.add(blockBEvent)然后在内部mapEventToStateBloc B事件添加到Bloc A)时,BlocBuilder不会调用 (但我可以通过print控制台确保事件已添加到Bloc A

我正在使用flutter_bloc图书馆。

0 投票
1 回答
449 浏览

angular - 错误:必须从注入上下文调用注入()但找不到来源

我正在使用 angularfire 的身份验证服务来注册和登录用户到我的应用程序,但是当我触发注册或登录方法时,我收到以下错误:错误:必须从注入上下文调用注入()

我尝试将 angular.json 文件中的 preserveSymlinks 设置为 true,但仍然无济于事。

我的注册和登录方法如何调用注入(),为什么它不起作用?

请在下面找到我的相关文件:

角.json

登录页面.ts

注册页面.ts

用户模型.ts

tsconfig.app.json