私が達成したいのは、配列のすべての要素を表示することです。この配列にはさまざまなタイプのコンポーネント(yes、components)が含まれており、これらのコンポーネントはすべて抽象クラスから継承されています。ここに私のコードは次のとおりです。角2は混合要素配列を示します
抽象クラスプラグイン
export abstract class Plugin {
constructor() { }
}
ウォッチコンポーネント
@Component({
selector: 'watch',
template: `
{{clock | async | date:'medium'}}
`
})
export class WatchCmpt extends Plugin {
clock = Observable.interval(1000).map(() => new Date())
constructor() {
super();
}
}
デモコンポーネント
@Component({
selector: 'demo',
template: `
<h1>Hello {{name}}</h1>
`
})
export class DemoCmpt extends Plugin {
name: string = "Jose";
constructor() {
super();
}
}
私は私の中でそれを表示するには、私の見解では、このコードを使用していますhtmlファイル:
<? *ngFor="let target of targetList; let x = index">{{target}} </?>
<?>
で何を使用しますか? [demo, watch]
EDIT:
@Component({
selector: 'dndPanel',
templateUrl: 'dragNdropPanel.cmpt.html'
})
export class DragNDropPanelCmpt {
@ViewChild(DemoCmpt) demo1: DemoCmpt;
@ViewChild(WatchCmpt) watch: WatchCmpt;
constructor() {
}
targetList: Plugin[] = [
this.demo1,
this.watch,
];
addTo($event: any) {
this.targetList.push($event.dragData);
}
}
これは、あなたがルータのコンセントで使用する必要があり、完全なHTML
div class="col-sm-6">
<div class="panel panel-info" dnd-sortable-container [sortableData]="targetList">
<div class="panel-heading">Target List</div>
<div class="panel-body" dnd-droppable (onDropSuccess)="addTo($event)" [dropZones]="['source-dropZone']">
<ul class="list-group">
<li *ngFor="let target of targetList; let x = index" class="list-group-item" dnd-sortable [sortableIndex]="x" [dragEnabled]="true">
{{target}}
</li>
</ul>
</div>
</div>
</div>
ここで、 'targetList'は宣言されていますか? – Aravind
@Aravind私は明確化のために質問を編集しました –