2017-01-23 7 views
2

Я играю с Angular2 и пытаюсь использовать один модуль (BreadcrumbDemoModule), импортирующий компонент другого (BreadcrumbModule).Angular2 Not Recognitive component From Imported Module

В настоящее время BreadcrumbModule содержит только один компонент: ng2-breadcrumb. Однако, когда я пытаюсь использовать этот componentin BreadcrumbDemoModule, я получаю сообщение об ошибке:

«NG2-хлебную крошку» не является известным элементом.

Я думаю, что, должно быть, мне не хватает ни одной строки, и я надеялся, что кто-то может указать мне, что я делаю неправильно.

спасибо, что заблаговременно!

Файлы для BreadcrumbModule

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 {} 

компоненты/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> 

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 {} 

компоненты/крошка/демо/индекса. 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 {} 

ответ

8

Вы должны добавить BreadcrumbComponent в массив экспорта:

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

Вещи внутри declarations массива являются компоненты/директивы/трубы, используемые внутри самого модуля. Если вы хотите предоставить их другим модулям, импортирующим ваш модуль, их следует добавить в массив exports

+0

Спасибо! Я знал, что мне не хватает чего-то очевидного. Это то, что я получаю для изучения примеров учебников, а не напрямую ссылаясь на документацию API. – SemperCallide

+0

Лучшие учебники и руководства, которые вы найдете на [angular.io] (https://angular.io), по совпадению, также там, где вы можете найти API;) – PierreDuc