2017-02-21 2 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> 

У меня есть [ngClass]="{'active' : price.active == true }" price.active устанавливается в это компонент по методу 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); 

}

+0

Просто храните 'active_price_id' и в шаблоне' {'active': active_price_id == price.id} ' –

+0

Какое должно быть начальное значение active_price_id? – dashred

+0

Если вы хотите, чтобы все 'label' inactive -> некоторые идентификаторы, которые определенно не могут существовать в вашем приложении. Если 'priceId' является индексом' autoincrement' sql, то вы можете установить, например, «-1». Или сделайте свой тип переменной 'any' (если вы используете машинопись) и присвойте' null' ... –

ответ

0

Один из способов достижения этой цели является:

[ngClass]="price.active ? 'active' : ''" 
Смежные вопросы