问题标签 [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 投票
1 回答
40 浏览

ionic-framework - ionic:循环依赖,无法解析所有参数

我有一个正在导入帮助服务的组件 (ItemDetailsPage)

在构造函数中我有

在 Helper.ts 我有以下内容:

我像这样使用它:

执行上述操作时,我得到“无法解析 ItemDetailsPage 的所有参数......我知道这是因为循环依赖。我可以移动showItemWindow到另一个组件并且它可以工作,但我将它放在帮助器中的原因是因为我需要它来自 3 个不同的页面,我想在一个地方打开这个窗口。

是否有另一种更清洁的解决方案,或者将其移至 3 个不同的组件是正确的?谢谢

0 投票
1 回答
1616 浏览

angular - 带有 HttpClient 参数的服务单元测试引发“TypeError:_this.handler.handle 不是函数”

我创建了一个可注入服务的类,我想测试返回 Observable 对象的函数。

一旦我尝试测试这样的函数,我就会收到以下错误:

TypeError: _this.handler.handle is not a function

我怎样才能设法测试这种功能?

我在互联网上找到了很多示例,但大多数都采用了已弃用的旧 Http 模块。

这是我的注射类:

客户端服务.ts

以及相应的测试:

client.service.spec.ts

这是完整的输出错误:

看起来 HttpClient 客户端的处理程序没有定义......并且没有考虑订阅中的测试。

模拟解决方案:

0 投票
1 回答
1022 浏览

angular - BaseService 类没有提供者

我有关于 Angular 6 的项目。我的一些服务扩展了基类。基类是没有@Injectable装饰器的常规 TypeScript 类。当我尝试运行应用程序时,出现错误:

NullInjectorError:没有 HttpCommonService 的提供者!

疯狂的猜测 - 也许它以某种方式与 DI 有关(因为我从另一个没有@Component装饰器的基类中扩展了一些组件并且它工作得很好),但是,即使在 DI 的情况下,我也不会创建新的基类实例扩展服务等级。

问题是什么,或者至少,我应该在哪里搜索问题?

例子

这是基类:

这是注入到应用根目录的服务

0 投票
0 回答
433 浏览

angular - 未捕获的错误:无法解析 LoginService 的所有参数:(?,?)

我是 Angular 6 的新手。

我在 github 上看到了很多错误报告,但没有一个会回答我的问题。

syntax error当我尝试创建一个从 http 接收信息的服务时,我得到了这个错误。

清单:

  • 我尝试从登录服务中删除所有注入,并且该应用程序正常工作。
  • 我主要遵循 Hero Tour 教程和一些我自己的代码
  • 我在 app.module.ts 中添加了提供程序
  • 我在所有可注入服务中添加了@Injectable

app.module.ts

loginbox.components.ts

登录服务.ts

cookie.service.ts

0 投票
1 回答
3141 浏览

angular - Angular 6 测试:如何在没有嵌套依赖项的情况下提供服务?

我有一个ComponentA使用ServiceA. 我正在为 编写一个测试ComponentA,并添加ServiceA到测试平台提供程序中。我运行测试并收到以下错误:

我添加ServiceB到提供者。我再次运行测试,现在我得到:

我的项目有很多嵌套的依赖,所有的服务都有@Injectable装饰器。如何避免提供一长串嵌套服务?

0 投票
1 回答
123 浏览

angular - 使用 Injectable service 洞察另一个 Injectable service angular 5

我正在努力使用 Injectable 服务洞察另一个 Injectable 服务 Angular 5 这是我的 crudService.ts :

这是我在其中插入 crudService.ts 文件的 authentication.service.ts:

和洞察 app.module.ts 文件我只导入 CrudService 类:

我的 CrudService 可注入导出类洞察 app.module.ts 文件。实际上,我尝试了不同的方案,例如同时导入两个类: CrudService 和 AuthenticationService 洞察 app.module.ts 以及其他方法...在编译过程中我没有任何错误,但是当我的应用程序启动时出现错误:

如果有人已经解决了与使用一个 @Injectable() 类洞察另一个 @Injectable() 类并为 Angular 5 注册逻辑洞察 app.module.ts 相关的问题,请给我发送链接或一些可能的场景跟随以成功编译、运行和使用@Injectable() 类。如果我需要精确的东西,请问我,我会提供更多细节。谢谢

PS 我的 AuthenticationService 被注入洞察 LoginComponent 类:

0 投票
0 回答
455 浏览

angularjs - 如何将对象传递给angularjs中组件的模板函数

我有一个 angularjs 1.7.x 项目,我使用一个组件在网站页面中添加图像和链接,如下所示:

并像这样在视图中使用该组件:

您可以在plunker中看到此示例代码

现在我需要访问组件模板中使用的传递对象,但我希望在模板编译时间之前获得它。我$attrs在模板函数中使用过,但它会将对象的值作为字符串!帮助我解决这个问题或使用其他方式在编译时间之前并根据传递的对象注入我的模板。

0 投票
2 回答
47 浏览

angular - 如何在组件中使用服务?

当我注入 UserService 然后组件时,它不会出现当我从组件中删除服务时,组件工作正常

@NgModule 中的提供者

服务代码

组件代码

0 投票
1 回答
2606 浏览

angular - [Angular 7+]:如何在另一个服务规范中对服务进行单元测试?

我有这两个服务文件,其中一个包含在另一个中。

应用服务.ts

auth.service.ts

每当我运行我的 app.service.spec.ts 测试文件时,它都会抛出与任何代码无关的错误。

app.service.spec.ts

但是,如果删除这些行

从 app.service.ts 文件中,然后所有测试都可以正常工作(如您所见,它正在调用 authService 函数)。

我试图将 authService 包含到 app.service.spec.ts 的提供者中,如下所示,但没有运气。:(

我的问题:如何在另一个可注入文件中包含/测试一个可注入(服务)?

0 投票
1 回答
525 浏览

java - 如何检查 Jackson Deserializer 中是否设置了 Injectable Value

我有一个扩展类JsonDerserializer<Type>。在这个反序列化器中,我有一个替换值的概念,我目前使用 objectReader(Injectables) 设置。我的问题是有时我没有注射剂。

我没有看到ObjectMapper允许我检查是否设置了可注入密钥的方法。我只看到findInjectableValue如果值不存在,它会抛出一个InvalidDefinitionException. 我目前正在尝试接听这个有效的电话,但我觉得这更像是一种黑客行为。

有什么我想念的吗?

我真的不想拥有这个try-catch。我想首先检查是否存在可注入值。