Функция события щелчка не работает в Chrome

#javascript #html #angular

#javascript #HTML #angular

Вопрос:

«Единственная опция содержит директивы события *ngFor и (click). * Цикл ngFor выполняет итерацию объекта с использованием канала keyvalue.Выпадающие параметры отображаются нормально, но это не вызывает функцию, когда я нажимаю на эти параметры в Chrome, но работает в Firefox.

   subjects = {
    'cse': 'Computer Science',
    'eee': 'electrical and electronics engineering',
  };

  getSub(sub) {
     console.log(sub);
  }
  
 <select>
   <option *ngFor="let item of subjects | keyvalue" (click)="getSub(item.key)">{{item.value}}</option>
</select>


Expected: I just expect to execute the getSub() function.
  

Комментарии:

1. Попробуйте удалить | keyvalue , а также использовать окончание " после subjects и протестируйте еще раз!

Ответ №1:

Используйте событие изменения вместо события щелчка и подписывайтесь на элемент выбора, а не на опцию

 <select (change)="getSub($event.target.value)">
   <option>Not Selected</option>
   <option *ngFor="let item of subjects | keyvalue" [value]="item.key" >
     {{item.value}}
   </option>
</select>
  

демонстрация stackblitz 🚀🚀

Комментарии:

1. Работает нормально. Большое спасибо вам, особенно за демонстрацию stackblitz. Я только что заметил эту работу и действительно.. это действительно полезно.

Ответ №2:

Похоже, вы забыли заключительные кавычки после *ngFor и перед вашим атрибутом события (click).

 <select>
    <option *ngFor="let item of subjects | keyvalue" (click)="getSub(item.key)">{{item.value}}</option>
</select>
  

Комментарии:

1. извините, сэр, я только что переписал коды. Вот почему я допустил ошибку. И этот код полностью работает в Firefox. Спасибо, сэр.