ExpressionChangedAfterChecked на ввод, но не нажмите - PullRequest
0 голосов
/ 19 мая 2019

В моем приложении angular 7 я получаю эту ошибку, если я нажимаю клавишу ввода, находясь в поле ввода, но не нажимаю кнопку поиска:

ExpressionChangedAfterItHasBeenCheckedError: Выражение изменилосьпосле того как это было проверено.Предыдущее значение: 'igx-input-group - focus: true'.Текущее значение: 'igx-input-group - focus: false'.

Код, запускающий его, выглядит следующим образом:

<igx-input-group>
    <label igxLabel for="search">Asset Search</label>
    <input #search igxInput type="text" class="form-control" id="search" [(ngModel)]="searchText"
           required (keyup.enter)="onSearchPressed()">
    <igx-hint>Search by S/N, Etag, barcode or RFID</igx-hint>
</igx-input-group>

<button class="btn btn-primary" (click)="onSearchPressed()" [disabled]="searchButtonDisabled">
    Search
</button>

Как видите, оба нажатия Enterи нажав кнопку, вызовите метод onSearchPressed().Я не понимаю, почему одно вызывает ошибку, а другое нет.

Ответы [ 2 ]

0 голосов
/ 19 мая 2019

Оберните ваш метод в setTimeout, после этого он запустит собственное обнаружение изменений, и эта ошибка исчезнет.

Надеюсь, что помог

0 голосов
/ 19 мая 2019

Я просто догадываюсь, но эта ошибка, скорее всего, связана с реакцией igxInput на нажатие enter.Поскольку директива igxInput привязана к тегу <input>, она реагирует на ввод, но не на щелчок по элементу <button>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...