Angular2无法识别来自导入模块的组件

时间:2017-01-23 15:16:11

标签: angular typescript angular-components

我正在玩Angular2,并试图让一个模块(BreadcrumbDemoModule)导入另一个模块(BreadcrumbModule)。

目前,BreadcrumbModule只包含一个组件:ng2-breadcrumb。但是,当我尝试在BreadcrumbDemoModule中使用此组件时,收到错误消息:

  

'ng2-breadcrumb'不是已知元素。

我想我必须在某个地方错过一条线,并希望有人可以向我指出我做错了什么。

非常感谢你!

面包屑模块​​的文件

breadcrumb.component.html:

THIS IS A BREADCRUMB TEST

breadcrumb.component.ts:

import { Component } from '@angular/core';  

@Component({
  selector: 'ng2-breadcrumb',
  template: require('./breadcrumb.component.html')
})
export class BreadcrumbComponent {}

components / breadcrumb / index.ts:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BreadcrumbComponent } from './breadcrumb.component';

@NgModule({
  imports: [
    BrowserModule //for later use
  ],
  declarations: [
    BreadcrumbComponent
  ]
})
export class BreadcrumbModule {}

BreadcrumbDemoModule的文件

面包屑demo.component.html:

<ng2-breadcrumb></ng2-breadcrumb>

面包屑demo.component.ts:

import { Component } from '@angular/core';
import { BreadcrumbModule } from './../index';

@Component({
  selector: 'ng2-breadcrumb-demo',
  template: require('./breadcrumb-demo.component.html')
})
export class BreadcrumbDemoComponent {}

组件/面包屑/演示/ index.ts:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BreadcrumbModule } from './../index';
import { BreadcrumbDemoComponent } from './breadcrumb-demo.component';

@NgModule({
  imports: [
    BreadcrumbModule,
    BrowserModule,
  ],
  declarations: [
    BreadcrumbDemoComponent
  ]
})
export class BreadcrumbDemoModule {}

1 个答案:

答案 0 :(得分:16)

您必须将BreadcrumbComponent添加到exports数组:

@NgModule({
  imports: [
    BrowserModule //for later use
  ],
  declarations: [
    BreadcrumbComponent
  ],
  exports: [
    BreadcrumbComponent
  ]
})
export class BreadcrumbModule {}

declarations数组中的内容是模块本身内使用的组件/指令/管道。如果要将这些模块暴露给导入模块的其他模块,则应将它们添加到exports数组