Я работаю в приложении angular и получаю следующую ошибку:
ExpressionChangedAfterItHasBeenCheckedError: выражение изменилось после проверки. Предыдущее значение: 'ng-untouched: true'. Текущее значение: 'ng-untouched: false'.
У меня есть поле ввода, которое выглядит так:
<input matInput type = "text" [(ngModel)] = "description" #descriptionInput />
{{ descriptionInput.focus() }}
Мой компонент выглядит так:
@Component({
selector: 'app-watermelon-dialog',
templateUrl: './watermelon-dialog.component.html',
styleUrls: ['./watermelon-dialog.component.scss']
})
export class WatermelonDialogComponent extends GeneralDialogComponent implements OnInit {
public description : string;
constructor(
public dialogRef: MatDialogRef<GeneralDialogComponent>,
@Inject(MAT_DIALOG_DATA) public dialogData: GeneralDialogModel,
ngDynFormService: DynamicFormService,
public generalDialogService: GeneralDialogService) {
super(dialogRef,
dialogData,
ngDynFormService,
generalDialogService);
}
ngOnInit() {
this.description = this.dialogData.extra;
}
}
Кто-нибудь знает, почему я получаю эту ошибку? И как мне от этого избавиться? Спасибо.
Удаление интерполяции действительно устранило проблему. Спасибо за это, JB. Но теперь я не могу сфокусировать поле ввода. Я создал здесь еще один вопрос: stackoverflow.com/questions/53544625/elementref-is-undefined





Из-за того, что что-то отображается так, как должно, интерполяция, которая у вас есть сразу после ввода, дает фокус полю ввода. Таким образом, при каждом обнаружении изменений вы будете уделять внимание этой области. Это не имеет смысла. Не делай этого. Удалите эту интерполяцию.