Я пытаюсь запустить функцию, когда пользователь нажимает Enter . Причина, по которой я делаю этот ввод только для чтения, заключается в том, чтобы запретить пользователю изменять значение во вводе после заполнения значения.

Значение поступает из всплывающего окна, которое будет вызвано атрибутом щелчка. Проблема в том, что keyup.enter не запускается для этого ввода.

Ниже приведен код:

<input type="text" [(ngModel)]="display.name"
  (click)="openProfile()" (keyup.enter)="submitProfile()" readonly
/>

<button (click)="submitProfile()" type="submit">
  Submit
</button>
2
H.Mustafa 19 Дек 2019 в 11:17
Я не могу воспроизвести это. У меня все работает нормально: stackblitz.com/edit/ …
 – 
Cristian Traìna
19 Дек 2019 в 11:43
Это проблема конкретного браузера?
 – 
Cristian Traìna
19 Дек 2019 в 11:44
Вы пробовали изменить [(ngModel)] на [ngModel]?
 – 
Cristian Traìna
19 Дек 2019 в 11:50
Я пробовал, но, похоже, все еще не работает :(
 – 
H.Mustafa
20 Дек 2019 в 05:21

1 ответ

Вы можете настроить атрибуты:

[readonly]="isValuePapulated"

Или

[disabled]="isValuePapulated"

Или используйте только:

[ngModel]="display.name"
(ngModelChanged)=onModelChanged($event)
// in component:
public onModelChanged(value: any): void {
    if (isValuePapulated) {
       return;
    }

   this.display.name = value;
}
0
Shahid Manzoor Bhat 19 Дек 2019 в 11:50