#javascript #angular #angular6 #angular8
#javascript #angular #angular6 #angular8
Вопрос:
Я использую Angular 6 здесь, у меня есть один выпадающий список, который поступает из ответа API.
<select
class="form-control"
name="empName"
[(ngModel)]="allData.secondEmp"
(change)="typeChange()"
(blur)="getid($event)"
required
>
<option
*ngFor="let employee of Employees"
value="{{employee.secondEmp}}">{{employee.firstName}}</option>
</select>
Здесь у меня есть массив, подобный
employees = [{id: 1, firstEMp: 'kaushik', secondEmp: 'krishna'}....]
Здесь я хочу получить идентификатор в своем запросе при изменении функции выпадающего списка.
Я знаю, что нам нужно изменить, value="{{employee.id}}"
но у меня здесь есть некоторые другие *ngIf
условия, поэтому я не могу изменить value
здесь. Любое другое решение для этого? TIA
Ответ №1:
[ngValue] = "{secondEmployee: employee.secondEmp , id: employee.id }"
попробуйте это
Комментарии:
1. Это выдает мне некоторую ошибку, например, не удается прочитать свойство ‘secondEmployee’ из undefined
2. Есть альтернативное решение для этого?
Ответ №2:
В вашем файле шаблона: используйте атрибут данных
<select
class="form-control"
name="empName"
[(ngModel)]="allData.secondEmp"
(change)="typeChange()"
(blur)="getid($event)"
required>
<option
*ngFor="let employee of Employees"
value="{{employee.secondEmp}}"
[attr.data-empid] = "employee.id">{{employee.firstName}}</option>
</select>
В файле TS: получите свой идентификатор
getid(e) {
const targetIndex = e.target;
const res = targetIndex.options[targetIndex.selectedIndex].dataset.empid;
console.log(res);
}