У меня есть выбор, привязанный к моей модели, который имеет ключ и ценность. У меня есть ngModelChange, подключенный к функции, чтобы проверить, что такое значение выбора. Выбор показывает ключ для пользователя, а изменение модели показывает значение для контроллера. Однако, когда я пытаюсь получить ключ от модели выбора, это просто показывает значение, которое я создал для него. Как получить ключ от моего выбора?
страница
<select name="sel1" class="form-control" [ngModel]="selectedItem" (ngModelChange)="onChange($event)" >
<option [value]="item.value" *ngFor="let item of items">{{item.key}}</option>
<select>
Компонент
private items:Array<any> = [
{ key:"Price", value:"itemPrice" },
{ key:"Year Made", value:"itemYear" },
{ key:"Model", value:"itemModel" },
{ key:"Customer Rating", value:"itemRating" },
{ key:"Newest Arrivals", value:"itemNewAriv" },
];
private selectedItem = this.items[0];
onChange(value) {
console.log("Test");
console.log(value);
console.log(this.selectedItem.key); // Does not change
}
Если item
является объектом (а не строкой), тогда [ngValue]
следует использовать [ngValue]
[value]
:
<option [ngValue]="item"
.value
в привязке.<select>
отсутствует/
в закрывающем теге. На самом деле это должно работать и с вашим кодом, потому чтоkey
на самом деле является строкой. Я пропустил это.private selectedItem = this.items[0];
неверно, хотя. Это должен бытьprivate selectedItem = this.items[0].key;
в вашем коде.