Могу ли я узнать, не установлен ли переключатель в угловом положении? - PullRequest
0 голосов
/ 07 июня 2018

У меня есть массив tagNames = {{value: Dog}, {value: Cat} ...} этот массив создается с помощью ввода пользователя.

 <div *ngFor = "let tag of tagNames">
          <input
              type = "radio"
              [value]= "tag.value"
              name = "tagName"
              (change) = "onclick($event)"> {{tag.value}}
  </div>

onclick(event) {
    for (let tag of this.tagNames) {
      this.temp[tag.value] = false;
    }
    let key = event.target.value;
    this.temp[key] = true;
  }

Есть ли у меня способ, чтобы у меня не было цикла в onclick, с помощью запуска события, который позволяет мне знать, что пользователь выбрал переключатель, связанный с cat и, следовательно, невыбранный Dog?

1 Ответ

0 голосов
/ 07 июня 2018

Похоже, у вас работает несколько массивов, возможно, было бы неплохо хранить их в одном массиве как объект.Не могли бы вы использовать свойство index для ngfor и сохранить его как предыдущий индекс?Также обновите ваши tagNames, чтобы они выглядели так: tagNames = [{value: 'Dog', selected: false}, {value: 'Cat', slected: false}, ...]

<div *ngFor = "let tag of tagNames; let i = index">
          <input
              type = "radio"
              [value]= "tag.selected"
              name = "tag.name"
              (change) = "onclick($event, i)"> {{tag.value}}
  </div>

prevIndex = 0;
onclick(event, index) {
    this.tagNames[this.prevIndex].selected = false;
    this.tagNames[index].selected = true;
    this.prevIndex = index;
  }

edit: Это может быть хорошей ссылкой для просмотра https://www.w3schools.com/angular/tryit.asp?filename=try_ng_form_radio

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...