私は3Dモデルのリストを持つWebアプリケーションを構築しています。私は、角2htmlテンプレート内のオブジェクトの配列をAngular 2で表示する方法は?
それぞれ記載されているモデルのいくつかの初期の知識を得るために、練習の目的のためにそれをやっている、名前、主映像、カテゴリ、およびスライダー(画像の配列)を持つことになります。
モデルデータ配列は次のとおりです。特定のモデルの表示を適切に使用され
export var MODELS: Model[] = [{
id: 1,
name: 'Model 1',
image: 'app/img/models/model-1.jpg',
category: 'Cat 1',
slides: [
{ alt: 'Model 1 front view' , url: 'app/img/models/model-2.jpg' },
{ alt: 'Model 1 rear view' , url: 'app/img/models/model-2.jpg' },
{ alt: 'Model 1 side view' , url: 'app/img/models/model-2.jpg' }
]
},
{
id: 2,
name: 'Model 2',
image: 'app/img/models/model-2.jpg',
category: 'Cat 2',
slides: [
{ alt: 'Model 2 front view' , url: 'app/img/models/model-2.jpg' },
{ alt: 'Model 2 rear view' , url: 'app/img/models/model-2.jpg' },
{ alt: 'Model 2 side view' , url: 'app/img/models/model-2.jpg' }
]
}
];
サービスは次のとおりです。
@Injectable()
export class ModelService {
getModels(): Promise<Model[]> {
return Promise.resolve(MODELS);
}
getModel(id: number): Promise<Model> {
return this.getModels()
.then(models => models.find(model => model.id === id));
}
}
モデルの詳細のページテンプレートには、次のとおりです。
<div *ngIf="model">
<h2>{{model.name}} details!</h2>
<img [src]="model.image" alt="{{model.name}}"/>
<div>{{model.slides}}</div>
</div>
これらは、私が使用したほとんどのもの:https://angular.io/docs/ts/latest/tutorial/
しかし、スライドの配列をモデル詳細ページに表示するのにもっとも簡単な方法を使用しようとすると、[オブジェクトオブジェクト]が表示されます。これは角度2の一般的な問題であり、カスタムパイプを使用して解決できることを読んでいます。残念ながら、私はこの特定のケースのために1つを書く方法を知りません。
一般的な質問は、htmlテンプレートにオブジェクト(スライド)の配列を正しく表示し、別々にimgタグにラップする方法です。ここで
はplunker例のリンクです:事前にhttp://plnkr.co/edit/HVo3dtGprMHsPYeyRWBR?p=preview
おかげで、
回答構文のおかげで、それは本当にすべてのより多くの[オブジェクトのオブジェクト]を示していないが、代わりにそれはまた、任意の画像のURLを表示することはできません、「slide.alt slide.alt slide.alt」を書き込みます。もっと何かをすべきか? – gundra
あなたのローカルマシンでさえ?あなたがそこにそれらを持っていないので、それはそう、それは –
構文ない場合は私に知らせて、この最後のあなたは、私が編集に貼り付けコードを使用している場合、それはあなたのローカルマシン上で動作するはずです、plunkrに表示し、画像はありませんスニペットは、モデルのページのために動作しますが、私はモデル詳細ページにそれを必要とする、私はそこにそれを適用しようとすると、アプリが – gundra