2016-09-02 3 views
5

Я хочу создать компонент как шаблон. Например, вместо того, чтобы писать это везде:Angular2 Html внутри компонента

<div class="myClass"> 
    <div class="myHeader" id="headerId"> Title </div> 
    <div class="myContent" id="contentId"> <<Some HTML code>> </div> 
</div> 

Я хочу использовать компонент, как:

<my-component title="Title" headerID=headerId contentID=contentID> 
    <<Some HTML code>> 
</my-component> 

Как я могу реализовать что-то вроде них в Angular2?

+1

Что вы пробовали? В чем проблема? Как «Некоторый код HTML >>» связан с вопросом? –

+1

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

+0

Так что ты хочешь? Какое желаемое поведение или результат? Если вы просто создаете простой компонент, что он не делает, что вы хотите? –

ответ

-1

Что-то вроде этого:

мои-component.ts

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

@Component({ 
selector: 'my-component', 
template: ` 
<div>{{title}}</div> 
<div>{{body}}</div> 
` 
}) 

export class ChildComponent { 

@Input() title: string; 
@Input() body: string; 

} 

Затем вы можете использовать его как это:

<my-component 
    [title]="someTitle" 
    [body]="someBody"> 
</my-component> 

Примечание: если вы добавляете body и title с [], он будет искать компонент, в котором вы используете <my-component> для переменные с именем someTitle и someBody, но если вы добавите его без [], он будет читать someTitle и someBody как строки.

+0

Я думаю, что объединение этого и будет хорошо работать для меня. Спасибо! –

+0

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

23

Используйте <ng-content></ng-content> в вашем компоненте.

my.component.html

<div class="myClass"> 
    <div class="myHeader" id="headerId"> Title </div> 
    <div class="myContent" id="contentId"> <ng-content></ng-content> </div> 
</div> 

parent.component.html

<my-component title="Title" headerID=headerId contentID=contentID> 
    <<Some HTML code>> 
</my-component> 

Все, что внутри <my-component></mycomponent> будет оказана в <ng-content></ng-content>

+0

Это именно то, что я хочу. Благодаря! –

+0

Есть ли способ заставить ленивую загрузку контента? Если в моем компоненте я включаю , все содержимое инициализируется, даже если условие ложно - например, когда содержимое содержит некоторые другие компоненты. – Antoniossss

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