私はカードのリストを持っています(ionic2を使用しています)。各カードはさまざまなタイプの1つです。私はそれ自身のコンポーネントに各カードをカプセル化し、それらをリストに格納し、それらをテンプレートにレンダリングすることを望んでいました。 {{コンポーネントは}}コンポーネントではなく、オブジェクト参照のレンダリングされたテンプレートであるのでAngular2コンポーネントをリストに格納し、各コンポーネントをテンプレートにレンダリングします
<ion-card *ngFor="#component of items">
{{component}}
</ion-card>
ようなテンプレートと
import {Injectable} from 'angular2/core';
import {Page} from 'ionic-angular';
@Page({
templateUrl: 'build/pages/search/search.html'
})
export class SearchPage {
items: Component[];
constructor() {
this.initializeItems();
}
initializeItems() {
this.items = [
new MyComponent1(),
new MyComponent2(),
new MyComponent3()
];
}
}
:コードは次のようになります。
どうすればよいですか?この全部が間違っていますか?もしそうなら、あなたは何をお勧めしますか?
EDIT:
私は単純にレンダリングするために、異なるデータ型を格納考えられてきたが、これは私には適切なソリューションのように感じることはありません。私は、分離のために各カードをそれ自身のクラス/コンポーネントにカプセル化することができるという考えを持っています。私は自分の検索ページに、それぞれの異なるカードタイプをどう扱うかを知っておく必要はありません。
https://angular.io/docs/ts/latest/cookbook/dynamic-form.htmlを参照してください。 'dynamic-form-question.component.html'にngSwitchが表示されます。私はあなたが表示したいコンポーネントのハードコードされたリストを配置することができますngSwitchで思う。私は現在、ソリューションの魔法使いを探しているので、あなたが望む方法でngSwitchを避けることができます – Alexandr