Мне нужна помощь с этим select
, он заполнен базой данных, и мне нужно, чтобы элемент был выбран при изменении элемента.
<select class = "custom-select col-md-12" id = "operation" name = "operation" formControlName = "operation">
<option *ngFor = "let operation of operations" [ngValue] = "operation.id" (ngModelChange) = "show(operation)">{{ operation.value}}</option>
</select>
show(value){
...
}
Я уже пробовал с (change)
и [(ngModel)]
, но это не работает.
Событие изменения должно быть в теге <select>
:
<select class = "custom-select col-md-12" id = "operation"
(ngModelChange) = "show($event)" name = "operation" formControlName = "operation">
<option *ngFor = "let operation of operations" [ngValue] = "operation.id" \>
{{ operation.value}}
</option>
</select>
Если вы привязываете formcontrolName, вам не нужно привязывать событие изменения в html. Вы можете подписаться на событие изменения в самом ts. Но если вы хотите привязать событие изменения через html, удалите привязку formcontrolName и привяжите событие изменения в html.
Компонент
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
name = 'Angular';
operations = [{ id: 1, value: 'test' }, { id: 2, value: 'test2' }, { id: 3, value: 'test3' }];
show(event){
console.info(event.target.value);
}
}
<select class = "custom-select col-md-12" id = "operation" name = "operation" (change) = "show($event)">
<option *ngFor = "let operation of operations" [value] = "operation.id" >{{ operation.value}}</option>
</select>
Пример: StackBlitz
На этом все, спасибо большое и извините за невнимательность
На этом все, спасибо большое и извините за невнимательность