기본 패널을 나타내는 구성 요소 (HTML 템플릿 포함)를 만들고 싶습니다. 그런 다음이 기본 클래스를 상속하지만 제목 (클래스 특성/함수 또는 @Input
)과 내용 (template
또는 templateUrl
은 @Component
데코레이터로 지정) 만 지정하고 싶습니다.Angular2 : 기본 구성 요소 - 제목과 내용이있는 패널
@Component({
template: `
<div class="panel">
<div class="title">{{title}}</idv>
<div class="content">???</div>
</idv>
`
})
export class BasePanel {
@Input()
protected title: string = '';
}
@Component({
selector: 'my-panel',
template: `MyPanel template - lorem ipsum`
})
export class MyPanel extends BasePanel {
title: string = 'MyPanel title';
}
다음 다른 템플릿 :
<my-panel></my-panel>
또는
는<my-panel title="My better panel"></my-panel>
매우 좋은 솔루션은 HTML 태그 사이에 콘텐츠를 제공하는 것입니다 :
<my-panel title="My panel with content">
<p>Lorem ipsum dolor sit amet,</p>
<p>consectetur adipiscing elit.</p>
</my-panel>
편집 1
ng-content가 포함 된 @rinukkus의 용액이 효과적입니다.
하지만 파생 된 구성 요소 템플릿을 장식하는 BasePanel
구성 요소를 만들 수있는 가능성이 있습니다.
파생 된 구성 요소 템플릿을 꾸미는 것이 무엇인지 "나는 모른다." 방법. 조금 더 자세히 설명해 주시겠습니까? –
@ GünterZöchbauer 구성 요소에서 (변수 등을 포함한) 패널 내용에만 HTML을 붙이고 싶습니다. 그리고 이것은 패딩, 여백, 테두리 등을 선언하는 HTML로 장식됩니다 - 응용 프로그램의 모든 패널에 대해 동일한 장식. 가급적이 꾸미는 것은'BasePanel'에 의해 이루어질 것입니다 - 그러나 이런 생각은 PHP에서옵니다. – koral
아래에 설명 된 ''과 같은 소리가 올바른 사용법입니다. –