У меня есть два текстовых поля. Один для категории. Другой для значений категории. Текстовое поле 1 является раскрывающимся, а текстовое поле 2 - автоматическим заполнением.
My Array
[{"name":"A", "value":1},
{"name":"A", "value":2},
{"name":"A", "value":3},
{"name":"B", "value":4},
{"name":"B", "value":5},
{"name":"B", "value":6}]
Код
<select [(ngModel)]="lName" name="Lname" (ngModelChange)="onChange($event)" name="name">
<option value="A">A</option>
<option value="B">B</option>
</select>
<input [formControl]="myControl" [matAutocomplete]="auto">
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let option of filteredOptions | async" [value]="option">
{{option}}
</mat-option>
</mat-autocomplete>
TS
myControl = new FormControl();
filteredOptions: Observable<string[]>;
ngOnInit() {
this.filteredOptions = this.myControl.valueChanges
.pipe(
startWith(''),
map(value => this._filter(value))
);
}
onChange(value){
var result = this.lookup_report.filter(obj => {
if(obj.name=== value){
return obj.value;
}
})
}
private _filter(value: string): string[] {
const filterValue = value.toLowerCase();
return result.filter(option => option.toLowerCase().includes(filterValue));
}
Моя проблема в том, что когда я ввожу A
, я могу получить значение 1,2,3
, и я их очищаю. Я снова ввожу B
, второе текстовое поле автоматически заполняет 1,2,3
. Мне не нужно их переносить, когда я ввожу другое имя. Если я ввожу 4 при автозаполнении, то отображаются значения для B