Выберите не меняется

0

У меня есть выбор, привязанный к моей модели, который имеет ключ и ценность. У меня есть 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 
}
Теги:
angular

1 ответ

1
Лучший ответ

Если item является объектом (а не строкой), тогда [ngValue] следует использовать [ngValue] [value]:

 <option [ngValue]="item" 
  • 0
    Хорошо, но значение selectedItem не меняется.
  • 0
    Я забыл удалить .value в привязке. <select> отсутствует / в закрывающем теге. На самом деле это должно работать и с вашим кодом, потому что key на самом деле является строкой. Я пропустил это. private selectedItem = this.items[0]; неверно, хотя. Это должен быть private selectedItem = this.items[0].key; в вашем коде.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню