私は、動的に表示/フィルタリングする製品のリストを作成するのと同様の作業をしました。
まず、カードの表示を担当する新しいコンポーネントを作成することをお勧めします。
/* Card component */
<md-card>
<md-card-header>
<md-card-title class="md-card-title">{{cardTitle}}</md-card-title>
</md-card-header>
<img md-card-image [src]="cardImagePath">
<md-card-content>
<div class="card-text-content">
{{cardShortDescription}}
</div>
</md-card-content>
<md-card-actions fxLayout="row" fxLayoutAlign="end center">
<button md-button (click)="addProductToCart()">ADAUGA IN COS</button>
<button md-button (click)="openDialog()">DETALII</button>
</md-card-actions>
</md-card>
次に、表示するデッキを保持するカードデッキを作成します。
表示する商品の数と一致するように、またページネーションやカードの応答性を考慮する必要があることを覚えておいてください。 2、3、4、6(12または24)で割ります。カードデッキが応答していて、カードですべての行を表示したい場合に使用します。
/*Card deck component */
<div fxLayout="row" fxFlex.md="70" fxLayoutWrap class="card-deck-container mat-elevation-z4">
<div fxFlex *ngFor="let product of productsDisplayed" class="card-item">
<app-card [ngStyle]="{'width':'300' + 'px'}" [product]="product"></app-card>
</div>
<div class="paginator mat-elevation-z4" *ngIf="productsDisplayed.length !== 0">
<md-paginator
[length]="paginatorSize"
[pageSize]="numberOfProductsDisplayedInPage"
[pageSizeOptions]="[12, 24]"
(page)="updateProductsDisplayedInPage($event)">
</md-paginator>
</div>
</div>
カードデッキ部品CSS
.card-deck-container {
width: 100%;
max-width: 1200px;
position: relative;
border-radius: 2px;
padding: 10px 10px 30px;
margin: 10px 10px 10px 10px;
background-color: #f5f5f5;
}
.card-item {
padding: 3px 3px 3px 3px;
}
ここでの主なものは、CSSです。カードデッキコンテナの最大幅は1200pxで、各カードの幅に応じて、最大4枚のカード(4枚のカード* 300px = 1200px:1行)でコンテナをいっぱいにします。 コンテナが小さくなると、カードアイテムは次の行に移動します(fxLayoutWrapのプロパティから)。
私はすぐにplunker例を投稿するつもりです。それがこれまでに役立つことを願っています。 p.s.製品からそれらのメッセージが https://plnkr.co/edit/egsNB7TLOI1HHzBgbTbP?p=preview :)
Plunker例を言っている(使用Google Chromeの)表示されている
項目が可能改ページ・コンポーネントとの相互作用に基づいて変更することができるかを理解しようとしないでください。しかし、配列内にすべての商品/アイテムを保持しなければならず、表示されている商品/アイテムを持つ別の配列を持つことになります。
希望:これは役に立ちます:)。
はまた、角度Flexプロジェクトを忘れないでください:
あなたがplunkerを共有することができますか? – webcoder