Я использую ввод данных автозаполнения материала для поиска статьи из базы данных, я работал с обычным вводом в столбце таблицы с директивой ngModel для двусторонней привязки данных и хотел изменить этот ввод на ввод автозаполнения, чтобы ядобавлен как Angular, упомянутый в документации, formControl во входных данных, так что я могу подписаться на valueChanges в Компоненте
Template
<tbody>
<tr *ngFor="let ligneFacture of facture.lignesFacture; let i =index;">
<td>
<form>
<mat-form-field >
<input type="text" class="form-control" matInput [formControl]="articleKeyword"
[matAutocomplete]="auto [(ngModel)]="ligneFacture.articleId">
<mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn.bind(this)">
<mat-option *ngFor="let article of articles;" [value]="article.id">
{{article.libelle}}
</mat-option>
</mat-autocomplete>
</mat-form-field>
</form>
</td>
TypeScript
articleKeyword = new FormControl();
ngOnInit() {
//some code here
this.articleKeyword.valueChanges.subscribe(value => this.articleService.queryByKeyword(value).subscribe(
(res: HttpResponse<IArticle[]>) => {
this.articles = res.body;
},
(res: HttpErrorResponse) => this.onError(res.message)
));
Автозаполнение работает нормально и вызывает веб-службу my Rest всякий раз, когда изменяется значение ввода, и пользователь может выбрать свою статью и отправить ее для сохранения в моей базе данных, тогда проблема заключается в следующем: невозможно правильно связать представлениевход с моими избранными статьями получен из базы данных, зная, что без ввода автозаполнения и необходимости formControl, ngModel работал нормально, чтобы выполнить связывание, поэтому мой вопрос здесь: есть ли решение, как подписаться на valuechanges на ngModel?поэтому я могу заменить здесь утилиту [formControl], зная, что использование ngModel и formControl устарело, как упоминалось здесь https://angular.io/api/forms/FormControlDirective#use-with-ngmodel