angular2“不是已知元素”错误:一切都已尝试

Posted

技术标签:

【中文标题】angular2“不是已知元素”错误:一切都已尝试【英文标题】:angular2 "not a known element" bug : everything was tried 【发布时间】:2018-02-24 10:59:42 【问题描述】:

我尝试在另一个模块中使用某些组件的非常经典的情况:

外来组件:

import  Component, ViewEncapsulation,
  ElementRef, ViewChild, Input, Output,
  EventEmitter  from '@angular/core';

declare var __moduleName: string

@Component(
  moduleId:    __moduleName,
  selector:    'bidule',
  templateUrl: 'bidule.html',
  styleUrls:   [],
  encapsulation: ViewEncapsulation.None
)
export class BiduleComponent 

  @Input() config:  

  constructor(protected elRef: ElementRef) 
  


// template : <p>basic text</p>

国外模块:

import  NgModule        from '@angular/core';
import  CommonModule    from '@angular/common';

import  BiduleComponent  from './bidule'

@NgModule(
  imports: [
  ],
  declarations: [
    BiduleComponent
  ],
  exports: [
    BiduleComponent
  ]
)
export class BiduleModule 

主要组件:

...
import  BiduleComponent        from '../../bidule/bidule'
...
// template : <bidule></bidule>

主模块:

import  BiduleModule           from '../../bidule/module'
// ...
@NgModule(
  imports: [
    // ...
    BiduleModule
  ]
)

我相信我检查了一切:

https://***.com/questions/44429996#44430230

如果你有任何想法。提前致谢。

(bidule 是 thingamajig 的法语单词)

【问题讨论】:

【参考方案1】:

您只需要在主模块中导入Foreign模块,并在主模块的任何组件上使用&lt;bidule&gt;&lt;/bidule&gt;即可。 导出 BiduleComponent 是对的,但不需要直接导入 Main Component,将 Foreign Module 导入 Main Module 就足够了。

【讨论】:

它仍然存在,否则我会验证你的答案:) 尝试删除moduleId和封装,并请从主组件的模板中删除//。还要使您的代码尽可能简单地开始(如果不需要,请从构造函数中删除声明)。能够确定问题开始出现的位置。

以上是关于angular2“不是已知元素”错误:一切都已尝试的主要内容,如果未能解决你的问题,请参考以下文章

Angular2 材质“md-icon”不是已知元素

“模板解析错误:'app' 不是已知元素”当使用 Webpack2 构建和部署“OK”angular2 应用程序时

Angular2中的材料设计组件“不是已知元素”

延迟加载Angular / Ionic 3 Component AOT“不是已知元素:错误”

Angular5 / Karma'选择器'不是已知元素[重复]

自定义角度库组件显示错误“不是已知元素”