2016-08-28 2 views
2

я должен добавить некоторые компоненты (комментарии к примеру), чтобы мое приложение: Пытаюсь:Добавить отдельный компонент для угловых 2

в comment.component.ts:

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

@Component({ 
    selector: 'am-comments', 
    template: `<h4>{{title}}</h4>` 
}) 

export class CommentComponent { 
    title = 'Comments title'; 
} 

мое приложение .module.ts:

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 

import { AppComponent } from './app.component'; 
import { CommentComponent } from './comment.component'; <-- 

@NgModule({ 
    imports: [ 
     BrowserModule, 
     FormsModule 
    ], 
    declarations: [ 
     AppComponent, 
     CommentComponent // <-- 
    ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

наконец в выходе:

<am-comments>Waiting...</am-comments> 

Но он не выводит шаблон из исходного компонента компонента CommentComponent

Что я пропустил?

Направл структура очень проста:

enter image description here

+0

Вам необходимо импортировать модуль, содержащий 'CommentComponent', в модули, в которых вы его используете. Есть ' Ожидание ...' в 'AppModule' или другом модуле? –

+0

Мне нужно создать отдельный компонент, но при таком подходе я могу создать только дочерний компонент. Например, в шаблоне родительского компонента: template: '

somehtml

здесь будет компонент комментариев для детей' – WebArtisan

+0

Извините, я не понимаю ваш комментарий. Можете ли вы попытаться перефразировать? Что вы подразумеваете под «может создавать только дочерний компонент», и что вы подразумеваете под «не выводит шаблон из CommentComponent вне родительского компонента»? –

ответ

1

компоненты и директивы Angular2 не могут быть использованы непосредственно за пределами корневого компонента. Они могут использоваться только в шаблоне другого компонента.

Единственный способ - загрузить новые модули в качестве дополнительных приложений Angular2, где каждый загрузочный модуль имеет другой компонент, зарегистрированный для bootstrap: [ XxxComponent ].

Директивы и трубы не могут использоваться вне корневого компонента.

В настоящее время корневые компоненты каждого загрузочного модуля должны иметь различный селектор. Это планируется изменить в будущем.

Смежные вопросы