多个组件将节点与标记名 app-lobby 相匹配

2024-02-22

该代码在 Angular 版本 8.3.4 上运行良好,但是当我将其更新到最新版本的 Angular ( 9 ) 时,出现以下错误

以下是堆栈跟踪

core.js:3866 ERROR Error: Uncaught (in promise): Error: Multiple components match node with tagname app-lobby
Error: Multiple components match node with tagname app-lobby
at throwMultipleComponentError (core.js:5511)
at findDirectiveDefMatches (core.js:8276)
at resolveDirectives (core.js:8080)
at elementStartFirstCreatePass (core.js:14215)
at ɵɵelementStart (core.js:14249)
at Module.ɵɵelement (core.js:14324)
at MainComponent_Template (main.component.html:1)
at executeTemplate (core.js:7562)
at renderView (core.js:7387)
at renderComponent (core.js:8577)
at resolvePromise (zone.js:836)
at resolvePromise (zone.js:795)
at zone.js:897
at ZoneDelegate.invokeTask (zone.js:431)
at Object.onInvokeTask (core.js:27769)
at ZoneDelegate.invokeTask (zone.js:430)
at Zone.runTask (zone.js:198)
at drainMicroTaskQueue (zone.js:611)
at ZoneTask.invokeTask (zone.js:517)
at ZoneTask.invoke (zone.js:502)

我有完全相同的错误说Error: Multiple components match node with tagname <my-tagname>我检查了很长时间才发现这个标签实际上是唯一的。在第二次阅读这个问题和所有答案后,我找到了 @Eugen 对原始问题的评论,这最终对我有帮助。所以我在这里添加一个小例子,以防将来每个人都遇到这个问题。 Angular 的错误消息在这里并没有真正的帮助。

我的错误是我将一个服务注入到我的组件中并直接在构造函数中使用它,如下所示:

constructor(private myService: MyService) {
    this.myService.doSomething()
}

这不起作用,因为它在 Angular 的依赖注入和我想要在构造函数中使用该服务之间引入了竞争条件。在构造函数内部,服务尚未实例化。

你想要做的是在调用构造函数之后使用该服务,即在 Angular 的 OnInit-hook 中:

export class MyComponent implements OnInit {

    constructor(private myService: MyService) {}

    ngOnInit(): void {
        this.myService.doSomething();
    }

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

多个组件将节点与标记名 app-lobby 相匹配 的相关文章

  • 由于 ngIf 语句,存储选择未运行

    我正忙于 MeteorJS 和 RxJS 它们正在退出 但有时也有点令人困惑 我当前的问题只是 Angular NgRx 问题 与 MeteorJS 无关 正如您在示例中看到的 有一个ngIf基于showChannels 该布尔值设置为fa
  • router.navigate 更改 URL,但不渲染组件

    而不是使用 a href my path my param a 在我的模板中 我愿意使用带参数的函数将我重定向到页面 所以 这就是我在 ts 文件中构建函数的方式 redirectToChat my param this router na
  • Angular 2 形式 + OnPush

    我正在编写一个 Angular 2 应用程序 出于性能原因 我尝试在任何地方使用 ChangeDetectionStrategy OnPush 我有一个复杂的组件 需要 OnPush 才能顺利工作 其中包含另一个显示表单的组件 使用 For
  • Angular 2打开静态页面

    我有 Angular 2 项目 我想在新窗口中打开服务器上可用的静态帮助文件 我试过window open help index html 它导航到该页面 但抛出有关找不到路线的错误 我也尝试在角度区域外运行上面的代码 但没有什么区别 我怀
  • 使用 HttpClient 而不是 Http,类型“Subscription”不可分配给类型“Observable”Angular 5

    我正在尝试使用新的 HttpClient 类而不是旧的 Http 我想映射从订阅方法获得的数据 但出现以下错误 关于为什么我得到这个有什么建议吗 Code export class YoutubeSearchService construc
  • 创建本身异步的自定义管道

    我创建了一个自定义管道 用于从 API 检索文本内容 如下所示 Pipe name apiText export class ApiTextPipe implements PipeTransform constructor private
  • 将 Angular v12 升级到 v13 时出现“模块未找到”错误

    嗨 开发者和贡献者 我正在努力找出以下错误的问题所在 src app models type ModelType ts 2 0 44 错误 找不到模块 错误 导出字段无法解析目录 请求为 当我将 Angular 版本从 v12 升级到 v1
  • Highcharts / Highmaps with Angular - 无法运行演示

    我正在发现 Highcharts Highmaps 现在 我想使用在我的机器上重现一些演示示例角6 但我无法让它发挥作用 官方的 JS 示例在这里 https www highcharts com maps demo map drilldo
  • 配置 htaccess 以使用 Angular 和 PHP 路由

    我正在尝试使用 Angular 4 和 PHP 路由 但我无法配置它以便同时使用两者 我可以让它与其中之一一起工作 但不能同时与两者一起工作 这是我的文件夹结构 root index html vendor bundle js other
  • 如何检查 Angular 7 中的输入字段是否处于焦点[重复]

    这个问题在这里已经有答案了 我有一个表单 我想知道表单中的任何输入字段是否获得焦点 我读了 NgForm 文档但没有找到任何相关的 focus I found touched但它不能满足需求 您可以使用焦点和模糊事件来跟踪字段获得或失去焦点
  • 如何为角度中的备用列添加背景颜色

    我使用角度材料垫桌子组件创建了一个简单的角度桌子 使用下面的样式我可以为备用行着色 但是当我将下面的样式中的行更改为列时 这不适用于列 mat row nth child even background color f2f4f7 mat r
  • 如何仅使用 TypeScript 声明属性为字符串类型的对象?

    我的组件中有一个像这样的配置数组 config ButtonConfig this config push new ButtonConfig 今天 我意识到让数组表现得像字典更有意义 这样我就可以不通过数字索引而是通过名称规范地访问特定元素
  • 从 firestore 返回嵌套集合作为 angularfire2 和 firebase 的对象

    假设您有以下结构 shopping carts collection shopping cart 1 doc dateCreated field items collection shopping cart 2 doc dateCreate
  • 将路由参数从父路由传递到子路由

    我的路线结构如下 parent id child child 我可以通过以下方式从父组件获取参数吗 ngOnInit this route params subscribe params gt this id params id 然后将其作
  • For-each 在 ionic2 和 angularjs2 中

    我用 IONIC 2 Beta 版本制作了一个应用程序 我想用for each环形 是否可以在 Angular V2 中使用每个 Thanks 首先在Component 您必须声明要显示的数组 import Component from a
  • 角度分割列表

    我有一个看起来像这样的列表 A B C 是否有任何简单的方法 而无需创建一个函数 将其展平为一个看起来像这样的数组 A B C 我搜索了 SO 但没有找到任何带有打字稿方法的内容 Thanks 编辑 A B C 是相同类型 看来您正在寻找的
  • 运行 Angular 应用程序:错误:0308010C:数字信封例程::不支持[重复]

    这个问题在这里已经有答案了 当我尝试运行角度应用程序时发现此错误 有什么建议吗 Error error 0308010C digital envelope routines unsupported at new Hash node inte
  • 捕获 Angular 2 异常

    如果 Angular 2 遇到内部异常 则不会将其记录到控制台 我怎样才能检测到像下面这样的异常 EXCEPTION Error during instantiation of MainFormComponent ORIGINAL EXCE
  • 将参数传递给 Angular2 组件

    我正在学习 Angular2 所以要温柔 我有一个带有字符串数组的基本组件 我想将一个整数传递给该组件并让它返回在该参数的索引处找到的字符串 例如 myComponent number 1 返回字符串 第二个元素 到目前为止我的代码是这样的
  • 反应式形式的 NgbDatepicker:设置初始值

    这可能是我一段时间以来处理过的最令人沮丧的问题之一 一般来说 日期 尤其是 NgbDatepicker 在 Angular 中处理起来有点麻烦 我正在 Angular 8 中针对反应 式表单实现 NgbDatepicker 我的问题的要点是

随机推荐