没有 ObservableDataService 的提供者

2023-12-03

我收到错误“No provider for ObservableDataService”

ObservableDataService: https://github.com/sanex3339/bannerscreator/blob/master/resources/assets/typescript/Services/ObservableDataService/ObservableDataService.ts

服务其中ObservableDataService将注入:https://github.com/sanex3339/bannerscreator/blob/master/resources/assets/typescript/Services/UploadedTemplatesService/UploadedTemplatesService.ts

我在里面描述了ObservableDataService'providers'的选项@Component的装饰者UploadedTemplatesService.

但这个错误仍然发生。 为什么我仍然收到此错误?

重要的!:现在在仓库中为了防止这个错误我使用全局注入ObservableDataService throug bootstrap(), but 我不需要ObservableDataService作为单身人士。

I need UploadedTemplatesService作为单例,其中新ObservableDataService将注入。


事实上,当您实现服务时,您不需要使用@Component装饰师。使用@Injectable装饰器就够了。

我想有点令人不安的是没有办法在@Injectable装饰师。原因是提供者链接到组件。从组件执行的所有处理都将使用该组件的注入器。

我的意思是如果组件A调用服务,而服务又调用服务B。这@Injectable装饰器将尝试解析组件注入器中的服务。

另一个重要的部分是 Angular2 的“分层注入器”特性。以下是所有这些元素及其与我的样本的关系的概述:

Application
(application injector)
     |
ComponentA  --- ServiceA --- ServiceB
(component injector)

在这样的应用中,我们有两个注入器:

  • 可以使用第二个参数配置的应用程序注入器bootstrap功能
  • The AppComponent可以使用配置的注入器providers该组件的属性。它可以“查看”应用程序注入器中定义的元素。这意味着如果在此提供程序中找不到提供程序,它将自动在该父注入器中查找。如果后者没有找到,则会抛出“未找到提供者”错误。

所以在你的情况下,你可以定义ObservableDataService在组件或以上组件的提供者内。当然在 bootstrap 中定义它是最广泛的......

这个问题可以为您提供有关分层注入器如何进行的更多详细信息 角度工作:

  • 在 Angular 2(Beta)中将一项服务注入另一项服务的最佳方法是什么?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有 ObservableDataService 的提供者 的相关文章

随机推荐

  • Python 中的 10 个字符字符串集在 RAM 中的大小是预期的 10 倍 [重复]

    这个问题在这里已经有答案了 也可以看看 Python 中数百万字符串列表的内存使用情况和副本 我正在创建一个Pythonset在RAM中包含1000万个10个字符的字符串 每个字符可以在0 255内表示 不会比这更复杂 没有UTF8非ASC
  • 构建 Swing UI 来实现方法编辑器

    我正在构建一个方法编辑器 一个方法 MethodModel类 通常具有以下元素 List
  • 如何仅使用线段的部分长度找到放置在形成线段的两个点之间的点?

    给定 2 个点 A x0 y0 z0 和 C x2 y2 z2 形成长度为 k 的线段 找到位于 k 处的点 C x1 y1 z1 的方程是什么距 A 1 英寸 这是基础数学 如果您已经有处理向量和点的类 您应该能够执行以下操作 Vecto
  • rm(list = ls()) 在函数内不起作用。为什么? [复制]

    这个问题在这里已经有答案了 我正在尝试创建一个函数 该函数将同时清除工作区和内存 这样我就可以只键入一个函数 而不必键入 rm list ls gc 但是 rm list ls 当从函数内部调用时不起作用 为什么 有没有办法解决 gt Le
  • 从控件中删除 ReactiveCocoa 信号

    如果我将信号分配给控件的属性 RAC self loginButton enabled RACSignal combineLatest self usernameTextField rac textSignal self passwordT
  • 在 iOS 中声明实例变量 - Objective-C

    好吧 这些天我读了很多关于这个话题的文章 但我总是感到困惑 因为我每次搜索的答案都不同 我需要知道在 iOS 中声明实例变量的最佳方法 到目前为止 我知道我应该只在 m 文件中声明它们并保持 h 干净 但我做不到 编译器给我编译错误 这里只
  • Math.Tan 不起作用

    我目前正在为 Windows Phone 编写一个计算程序 其中一项计算是查找用户输入的数字乘以用户输入的另一个数字的正切值 问题是当我输入 1 tan 45 即 1 时 它返回 1 6 我通过调试器运行了几次 我可以看到 Math Tan
  • 使用 Jsoup 从 html 文件中提取标签

    我正在对网络文档进行结构分析 为此 我只需要提取网络文档的结构 仅标签 我找到了一个名为 Jsoup 的 java html 解析器 但我不知道如何用它来提取标签 Example this is head this is body Outp
  • django根据模型属性自动填充一些数据

    我正在研究一个概念 我想在保存模型时捕获某些信息 为了了解完整情况 我有一个具有以下模型的应用程序核心 核心 模型 py from django db import models from django contrib auth model
  • 将新元素添加到映射后出现“不是‘map-get’的映射”错误

    如何将映射合并到 sass 中的现有映射中 我目前正在使用 sass 地图 config部分来定义我的断点 例如 breakpoints small 35rem medium 55rem large 75rem xlarge 90rem e
  • @EJB 注释与 JNDI 查找

    是否存在使用 JNDI 比使用注入无状态会话 bean 更好的情况 EJB注解 我们将 JSF 1 2 与 Sun Application Server 9 0 01 结合使用 我们的团队正在讨论在托管 Bean 中使用 SLSB 时哪种方
  • 如何防止长按 EditText Widget 时显示虚拟键盘?

    我的应用程序中有一个 EditText 小部件 我已将其设置为只读 我想知道用户何时长按它 如果用户点击此小部件 我不希望弹出虚拟键盘 为了阻止虚拟键盘出现 我使用这个 EditText 文本 EditText findViewById R
  • 插入数据并获取返回的 id 后如何修复 DapperExtensions 错误

    I use 简洁的扩展将数据拉取和推送到数据库 I use unsigned intid 作为我的主键database并在class以及 我的课看起来像这样 public class Product Column id public uin
  • CodePipeline 的 Cloudformation 模板

    我们有一个 aws 设置 其中有一个测试帐户和一个生产帐户 我们的代码提交 java lambda 位于我们的测试帐户中 我们希望使用 CodePipeline 将代码从此处部署到我们的测试帐户和生产帐户 我想知道是否有人知道任何可以执行此
  • 另一个视图控制器中属性的内联 KVO

    我有一个带有动态变量 值 的 vc 我需要知道它何时在调用 cv 的闭包中发生更改 目标VC objc dynamic var value String source if let vc TagButtonPopupViewControll
  • 如何确认邮件来源

    我从我的 smtp 服务器发送电子邮件 例如 设置From to 电子邮件受保护 收件人会认为电子邮件来自anydomain 如何确认邮件来源 处理电子邮件伪造的方法有多种 Use PGP or SSL 签名证书 Use SPF 检查Rec
  • 使用 css 在子菜单前添加三角形

    如何在下面的示例中添加三角形Fiddle 我需要删除具有白色背景的父菜单并显示三角形以使其看起来更像这样 我尝试添加以下 css 但它不起作用 dropdown li first child gt a after content posit
  • 以编程方式将文件夹复制并粘贴到映射的网络驱动器中

    我试图在映射的网络驱动器上复制一个文件夹 不是文件 而是整个目录 并将其新版本以不同的名称粘贴到同一位置 如果我使用本地驱动器 下面的代码效果很好 但是 我在使用网络驱动器时遇到身份验证错误 DirectoryCopy mappedserv
  • 在 Java-8 中重构多个 If' 语句

    我需要验证班级中的必填字段 例如 9字段不得是null 我需要检查它们是否全部为空 但我现在使用多个 if 语句 如下所示 StringBuilder mandatoryExcessFields new StringBuilder MAND
  • 没有 ObservableDataService 的提供者

    我收到错误 No provider for ObservableDataService ObservableDataService https github com sanex3339 bannerscreator blob master