3d モデルのリストを持つ Web アプリを構築しています。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/
ただし、スライド配列をモデル詳細ページに表示する最も簡単な方法を使用しようとすると、[object Object] が表示されます。これはangular 2の一般的な問題である可能性があり、カスタムパイプを使用して解決できることを読みました。残念ながら、この特定のケースでどのように書くかはわかりません。
一般的な質問は次のとおりです: html テンプレートにオブジェクト (スライド) の配列を適切に表示し、それらを個別にimgタグにラップする方法。
プランカーの例のリンクは次のとおりです: http://plnkr.co/edit/HVo3dtGprMHsPYeyRWBR?p=preview
前もって感謝します、