如何让 Angular2 依赖注入与价值提供者一起工作

2023-12-01

我正在关注依赖注入的角度文档,并尝试复制以下部分依赖注入标记。但很明显我还是不明白。

我正在尝试使用value provider注入一个config:any进入我的项目。

在最简单的层面上,我只想provide常量字符串

// app-modules.ts
const CFG_STRING = "I was declared externally and injected in ngModule"    
@NgModule({
  imports: [ BrowserModule ],
  declarations: [ App ],
  providers: [
    {provide: CFG_STRING, useValue: CFG_STRING}
  ],
  bootstrap: [ App ]
})

and inject进入组件构造函数

// app.ts
const LOCAL_STRING = "I was declared in the local module"
export class App {
  constructor(
    // @Optional() cfgString: CFG_STRING
  ) {
    this.name = 'Angular2'
    this.local = LOCAL_STRING

    /* provided/injected */
    // this.injectedStr = cfgString
  }
}

但是当我这样做时,应用程序无法正常运行。我究竟做错了什么?

这是一个笨蛋:http://plnkr.co/edit/sQwxyDqLkMTgVUjJ1yYF?p=preview


如果您不使用类型作为提供程序的键,而是使用字符串或OpaqueToken你需要将密钥传递给@Inject()

constructor(
    @Inject('CFG_STRING') /* @Optional()*/ cfgString: CFG_STRING
  ) {

并提供它就像

  providers: [
    {provide: 'CFG_STRING', useValue: CFG_STRING}
  ],

CFG_STRING不是类型,因此不能用作键。您使用一些字符串或提到OpaqueToken。它可以是任何字符串,它只需要在之间匹配provide and @Inject()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 Angular2 依赖注入与价值提供者一起工作 的相关文章

随机推荐

  • 如何在 matplotlib 中的子图中选取一个点并在相邻子图中突出显示它(点区域的扩展)

    我想创建一个由一些子图组成的散点图矩阵 我从 txt 文件中提取了数据并创建了一个形状数组 x y z p1 p2 p3 数组的前三列表示这些数据来自的原始图像的 x y z 坐标 最后三列 p1 p2 p3 表示一些其他参数 因此 在数组
  • Vuejs 打字稿 this.$refs..value 不存在

    在用 TypeScript 重写我的 VueJs 项目时 我遇到了 TypeScript 错误 这是具有自定义 v 模型的组件的一部分 html 中的输入字段有一个名为 plate 的引用 我想访问它的值 该字段上的 input 调用下面编
  • Firestore 更新数组字段中的单个项目

    我在 Firebase Firestore 中有一个类似于下面的文档 这里的要点是我有一个名为items里面有物体 name Foo items name Bar meta image xyz png description hello w
  • 如何在回发中停止 HtmlEditorExtender 编码 html?

    我有一个用户控件 其中包含一个文本框 一个HtmlEditorExtender和一个按钮 用户控件被加载到父页面中使用LoadControl 每当我单击按钮发布表单时 文本框中的任何格式化文本都会被编码 这不是应该发生的情况 例如 如果我加
  • 如何使用 jQuery 防止多个下拉列表中出现重复值

    我有 5 个下拉菜单供用户选择他们的偏好 所有下拉菜单都有相同的选择 如果用户为下拉列表 1 选择了一个值 则该选项不应适用于其他下拉列表 如此下去 对于最后一个下拉列表 应该有 4 个不可选择的选项 这与对此所做的类似link 但现在我们
  • 在 TensorFlow v1 中隐式启用 TensorFlow v2 行为

    作为迁移到 TensorFlow 2 的一部分 我希望在 TensorFlow v1 特别是 TensorFlow 1 14 中启用 TensorFlow v2 行为 我知道我可以打电话tf enable v2 behavior 来执行此操
  • 如何垂直平移一个元素,使其新位置位于其他两个元素之间?

    给定一个标题元素和一个主要内容元素 我想在这两个元素之间添加一个栏 垂直 所以这个 header background yellow height 50px bar background green height 50px main con
  • Hadoop HDFS:读取正在写入的序列文件

    我使用的是 Hadoop 1 0 3 我将日志写入 HDFS 中的 Hadoop 序列文件 在每组日志后调用syncFS 但我从不关闭该文件 除非我执行每日滚动 我想保证的是 当文件仍在写入时 读者就可以使用该文件 我可以通过 FSData
  • java中如何给出随机限制?

    假设您想要生成一个随机数 但希望它低于指定的数量 这可能吗 Random rand new Random int randInt rand nextInt 16 Generates a number in 0 1 15 文档位于 http
  • 将图像应用于 pyplot python 条形图

    下面是我的代码片段 一切正常 只是好奇 除了显示具有特定颜色的条形图之外 是否可以将图像应用于条形图 例如国家国旗等 请忽略我不一致的参数传递顺序 thanks l images australia png turkey png this
  • Windows 和 Linux 文本文件处理问题

    好吧 这是我在处理文本文件时遇到的奇怪的跨平台问题 假设我有一个程序可以非常简单地读取文本文件 reading a text file include
  • 如何使用php检查用户观看了多少视频流

    我正在开发一个项目 该项目向用户显示视频广告 60 秒后用户可以看到链接 我的老板希望确保用户观看全部 60 秒 现在我想知道有什么方法可以检查 php 已经看到了多少视频流 为了将视频呈现为流 我使用了以下代码 http codesamp
  • 如何防止异步函数中的 Navigator.pop() 弹出不再存在的路线?

    在我的 flutter 应用程序中 我有一个按钮 用于启动异步网络操作并在等待其完成时显示一个对话框 完成后 对话框将从导航中弹出 但我遇到了并发问题 这是我的代码 ElevatedButton onPressed async showDi
  • C++ 相当于 Perl 中的“pack”

    我如何编写 C 代码来完成以下任务pack NPerl 中的选项有什么作用 我想将整数变量转换为某种二进制形式 以便unpack它的 N 选项返回整数变量 我的整数变量名称是时间戳 我发现它与htonl有关 但htonl timestamp
  • python FTP下载特定名称的文件

    我有一个带有文件夹的 FTP 它包含以下文件 pw201602042000 nc pw201602042010 nc pw201602042020 nc pw201602042030 nc pw201602042040 nc pw20160
  • msgbox 要求用户以特定格式输入

    我正在尝试编写一个快速的小宏 要求用户输入 然后将其复制到特定单元格 Sheet1 中的 B14 这是我到目前为止所得到的 Option Explicit Sub updatesheet Dim vReply As String vRepl
  • Typescript 2.8:从一种类型中删除另一种类型的属性

    In the 2 8 的变更日志 他们有条件类型的示例 type Diff
  • 在 DigitalMicrograph 脚本中打开文件夹中的多个文件

    我正在尝试编写一个 DigitalMicrograph 脚本 该脚本可打开文件名中包含特定字符串的所有图像 我知道如何使用打开图像OpenImage filename 我在文档中看到一个命令GetFilesInDirectory 存在 这似
  • jQuery 清除后如何关注 iframe 的内容

    我目前有一个所见即所得的 iframe 用户可以将输入提交到页面上的另一个区域 提交 iframe 输入后 我将其设置为清除内容 我还想自动将焦点放回到 iframe 中 这是我目前拥有的代码 postContentClr iframe t
  • 如何让 Angular2 依赖注入与价值提供者一起工作

    我正在关注依赖注入的角度文档 并尝试复制以下部分依赖注入标记 但很明显我还是不明白 我正在尝试使用value provider注入一个config any进入我的项目 在最简单的层面上 我只想provide常量字符串 app modules