2016-11-16 3 views
1

У меня возникла проблема с добавлением имени класса, основанного на индексе цикла Angular 2 ngFor. используя ngДля создания нескольких кнопок, когда я нажимаю кнопку, добавьте класс в определенную кнопку. как тег выберите Для справки LinkДобавить имя элемента элемента click в цикле * ngFor Angular 2

<button color="light" *ngFor="let category of categories" [class.tagactive]='stateOfButton' (click)="changeState(i)" let i = index;>{{category}} <span (click)="delete(i)">X</span></button> 

    stateOfButton: boolean = false; 
    categories = ['Windstorm', 'Bombasto', 'Magneta', 'Tornado', 'mango']; 
    changeState(index) { 
     this.stateOfButton = !this.stateOfButton; 
    } 
    delete(index) { 
     this.categories.splice(index, 1); 
    } 

.tagactive { background: #cc3333; color:#fff;} 
+0

Так что? Я работаю, или это не работает или в чем проблема? Btw, 'let i = index;' должен находиться внутри '* ngFor'. – martin

+0

, когда я нажимаю одну кнопку, имя класса добавляется во все кнопки. Мне нужна конкретная кнопка для изменения цвета, например, http://www.jqueryscript.net/demo/Simple-Mobile-Friendly-jQuery-Tags-Input-Plugin-Taxonomy/ –

ответ

1

Вам нужно array управлять активным или неактивным состоянием кнопки:

//HTML 
<button color="light" *ngFor="let category of categories;let i = index;" [class.tagactive]="stateOfButton[i]" (click)="changeState(i)">{{category}} <span (click)="delete(i)">X</span></button> 


// Component 
categories = ['Windstorm', 'Bombasto', 'Magneta', 'Tornado', 'mango']; 
stateOfButton: boolean[]; 

ngOnInit() { 
    // Creates the array with inactive state initially for all category items. 
    this.stateOfButton = Array(this.categories.length).fill(false); 
} 

changeState(index) { 
    this.stateOfButton[index] = !this.stateOfButton[index]; 
} 
delete(index) { 
    this.categories.splice(index, 1); 
    this.stateOfButton.splice(index, 1); 
} 
+0

нет работающий .. все еще не выбирает определенную кнопку –

+0

Проверьте свое мнение с помощью '{{stateOfButton | json}} 'какие значения внутри' stateOfButton', когда вы нажимаете кнопку. – ranakrunal9

+0

жаль работать отлично, спасибо вам большое –

Смежные вопросы