2017-02-21 10 views
0

商品価格にループするdivラベルがあり、 商品価格をクリックすると、アクティブなクラスがラベルエレメントタグに設定されます。別のラベルタグをクリックするとアクティブクラスを削除する方法

私が別のラベル要素をクリックすると、アクティブなクラスを削除するにはどうすればよいですか?

<div class="btn-group cx-cont" *ngFor="let price of product.price" data-toggle="buttons" > 
    <label class="btn btn-primary " id="cart-label" [ngClass]="{'active' : price.active == true }"> 
     <input type="radio" class="cart-check" ng-class="{'active': isActive}" (click)="selectProduct(price.id,price, price.unit)" autocomplete="off"> 
     <div class="cart-price">{{price.price | currency: 'USD':true}}</div> <div class="cart-unit">{{price.unit}}</div> 
    </label> 
</div> 

私はprice.activeが、それに設定されている[ngClass]="{'active' : price.active == true }"はこれを達成するための方法の一つである

+0

'active_price_id'をテンプレート' {'active':active_price_id == price.id}に保存してください ' –

+0

active_price_idの初期値は何ですか? – dashred

+0

すべての 'label's inactive - >いくつかのIDをアプリケーションには絶対に存在させることはできません。 'priceId'がsqlの' autoincrement'インデックスであれば、例えば "-1"を設定することができます。または、あなたの変数型を 'any'(typescriptを使用する場合)にし、' null'を割り当てます。 –

答えて

0

selectProduct方法

selectProduct(id, price, unit) { 
this.price_id = id; 
this.price = price; 
this.price.active = true; 
this.unit = unit; 
this.isClassVisible = true; 
this.selectedProd = true; 
// console.log(this.cart); 

}上のコンポーネントの持っている:

[ngClass]="price.active ? 'active' : ''" 
関連する問題