Ich bin Neuling mit eckigen 2 Ich habe eine Frage, aber versuche es noch nicht. Ich habe eine Liste der Todo-Liste aber Element in dieser Liste erstellen möchten verschiedene Komponenten & Klasse (aber jede Komponente Vererbung von gleichen Eltern)angular 2 Ist es möglich zu listen, die Vererbung Artikel haben
class Todo {}
class TodoPic extends Todo {}
class TodoVideo extends Todo {}
@Component({
selector: 'todo',
template: '...'
})
class AbstractTodoComponent {
todo: Todo;
}
@Component({
selector: 'todo-pic',
template: '...'
})
class TodoPicComponent extends AbstractTodoComponent {}
@Component({
selector: 'todo-video',
template: '...'
})
class TodoVideoComponent extends AbstractTodoComponent {}
und verwenden ähnliche
@Component({
selector: 'app',
template: '<todo *ngFor="let item in todoList"></todo>'
})
class AppComponent {
todoList: Todo[]
constructor() {
todoList.push(new TodoPic())
todoList.push(new TodoVideo())
}
}
Seit 'AbstractTodoComponent' ist eine reguläre Klasse, die Sie tun können es als eine reguläre Klasse erben. Über das bedingte Rendering (das anscheinend das ist, was Sie fragen), scheint es der bessere Ansatz zu sein, '* ngIf' oder' [ngSwitch] 'zu verwenden. – acdcjunior
Haben Sie einen besseren Ansatz als '* ngIf' oder' ngSwitch'? Ich sehe Dynamic Content Loader, aber es ersetzt Inhalt nicht die Komponente –
Eigentlich könnten Sie 'DynamicComponentLoader' als Alternative verwenden. Ich habe eine Antwort mit einem Beispiel hinzugefügt. – acdcjunior