這可以通過繼承來實現。不同的視圖和樣式模板,但(基本上)相同的底層組件代碼。你仍然必須聲明@Component元數據,所以如果你使用值訪問器等,你將需要重新定義這些元數據。
第一部分:
import { Component, Input, OnInit } from '@angular/core';
import { KeyValuePairBase } from '../../model/key-value-pair-base'
@Component({
moduleId: module.id,
selector: 'select-list',
templateUrl: './select-list.component.html',
styleUrls: ['./select-list.component.scss']
})
export class SelectListComponent implements OnInit {
@Input() private data: KeyValuePairBase[];
constructor() {
super();
}
ngOnInit() {
if (!this.name) throw new Error("'name' property is required by 'select-list' component");
if (!this.friendlyName) throw new Error(`'friendlyName' property is required by 'select-list' component '${this.name}'`);
}
}
第二部分:
import { Component } from '@angular/core';
import { SelectListComponent } from '../select-list/select-list.component'
@Component({
moduleId: module.id,
selector: 'radio-list',
templateUrl: './radio-list.component.html',
styleUrls: ['./radio-list.component.scss']
})
export class RadioListComponent extends SelectListComponent {
}
那麼什麼是與鏈接的SO問題提供的解決方案的問題? –
他們都沒有爲我工作。 –
他們怎麼不適合你? –