0

本を読む同じテンプレートで同じ* ngForループを2回使用する例を見つけました。私は入れ子にされたコンポーネントに侵入し、動作しなかった変数 'i'をリファクタリングしようとしました。テンプレート内の同じ* ngForループを使用する

この例では、ブートストラップカルーセルを使用し、インジケータボタンとスライドショーの両方のカテゴリをループする必要があります。

同じループを繰り返していないこれを書き込むより良い方法をご存知ですか?あなたのIndicators HTMLを変更

@Input() category: Category; 
@Output() select: EventEmitter<Category> = new EventEmitter<Category>(); 

答えて

1

<!-- Indicators --> 
<ol class="carousel-indicators"> 
    <li data-target="#welcome-products" 
     *ngFor="let category of slideCategories;let first=first; let i=index" 
     attr.data-slide-to="{{i}}" [ngClass]="{active: first}"></li> 
</ol> 

<!-- Content --> 
<div class="carousel-inner" role="listbox"> 

    <div *ngFor="let category of slideCategories;let first=first" 
     class="carousel-item" [ngClass]="{active: first}"> 
    <db-category-slide 
     [category]="category" (select)="selectCategory($event)"> 
    </db-category-slide> 
    </div> 

この

<div class="card"> 
<img class="card-img-top img-fluid center-block product-item" src="{{category.image}}" alt="{{category.title}}"> 
<div class="card-block"> 
    <h4 class="card-title">{{category.title}}</h4> 
    <p class="card-text">{{category.desc}}</p> 
    <button class="btn btn-primary" (click)="browse()">Browse</button> 
</div> 
</div> 

コンポーネントが同じ入力/出力を持っており、次のようになりDB-カテゴリスライドのテンプレートです以下のようになります。

<ol class="carousel-indicators"> 
    <li data-target="#welcome-products" 
     *ngFor="let category of slideCategories;let first=first; let i=index" 
     [attr.data-slide-to]="i" [ngClass]="{active: first}"></li> 
</ol> 
+0

私はそれをバインドする必要があるので、私はupvoteします。しかし、それは問題を解決しません。私は、カルーセルインジケータは何らかの理由で働くためにカルーセルインナーの外側にいなければならないと考えています。 – venturz909

関連する問題