Angular:来自共享模块的组件无法识别

时间:2017-06-19 17:55:04

标签: javascript angular

到目前为止,我有一个包含2个模块的应用程序:“共享”和“Web”。

我在网络上的所有组件都运行良好。我刚在共享模块中创建了一个简单的组件,因为我打算在整个应用程序中重复使用它:

import { Component, Input, OnInit } from '@angular/core';

@Component({
  selector: 'pb-ds-pluginstable',
  templateUrl: './pluginstable.component.html',
  styleUrls: ['./pluginstable.component.scss']
})
export class PluginstableComponent implements OnInit {

  @Input() name: string;
  @Input() version: string;
  @Input() link: string;

  constructor() {}
  ngOnInit() {}

}

将其导入共享模块并导出:

...other imports...
import { PluginstableComponent } from './pluginstable/pluginstable.component';

@NgModule({
imports: [
  CommonModule,
  RouterModule,
  NgbModule
],
  declarations: [HeaderComponent, FooterComponent, HeaderShadowDirective, PluginstableComponent],
  exports: [HeaderComponent, FooterComponent, HeaderShadowDirective, PluginstableComponent]
})
export class SharedModule { }

但是当我在Web模块的组件模板中使用它时,如下所示:

<pb-ds-pluginstable name="foo" version="2.2.2" link="bar"></pb-ds-pluginstable>

我收到一个无法识别该组件的错误:

core.es5.js:1020 ERROR Error: Uncaught (in promise): Error: Template parse errors:
'pb-ds-pluginstable' is not a known element:
1. If 'pb-ds-pluginstable' is an Angular component, then verify that it is part of this module.
2. If 'pb-ds-pluginstable' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
  </section>

  [ERROR ->]<pb-ds-pluginstable name="foo" version="2.2.2" link="bar"></pb-ds-pluginstable>

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

您还需要在中导入SharedModule (不是父项,而不是孩子,完全相同的模块)module,您要在其中使用它{\ n}导出的元素

@NgModule({
   imports: [
      SharedModule,
      ...
   ]
})
export class YourModule { }

答案 1 :(得分:0)

我认为您没有将共享模块导入Web模块。您很可能只将导入添加到应用模块