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

<div class="input-field">
<input type="text" [(ngModel)]="distance" 
[floatInput]="true" 
[ngClass]="{ 'invalid': ( form.get( 'distance' ).hasError('required') ) }" [formControl]="form.get( 'distance' )" 
debounce (afterValueChanged)="setDistance( distance )"  
min="2" value="1" >
</div>

Часть противодействия является важной. Это работает как задумано. Однако мне нужно заставить его работать в другой области, а это вообще не работает. HTML выглядит так:

<div class="input-field centerblock fullwidth">
<input type="text" 
[disabled]="!editable" 
[floatInput]="true" placeholder="0.00" 
[id]="'oap'+pos" [(ngModel)]="item.monto" 
debounce (afterValueChanged)="montoActualizado( $event.target.value, item)" >
</div>

Кто-нибудь знает, почему это не могло работать?

1
dizzydizzy 29 Окт 2019 в 16:37

1 ответ

Лучший ответ

Похоже, вы забыли добавить [formControl]="form.get( 'item.monto' )":

<div class="input-field centerblock fullwidth">
<input type="text" 
[disabled]="!editable"
[formControl]="form.get( 'item.monto' )" 
[floatInput]="true" placeholder="0.00" 
[id]="'oap'+pos" [(ngModel)]="item.monto" 
debounce (afterValueChanged)="montoActualizado( $event.target.value, item)" >
</div>
1
StepUp 29 Окт 2019 в 16:42
Зачем мне нужно добавлять туда элемент управления формой? Я собираюсь проверить это сейчас
 – 
dizzydizzy
29 Окт 2019 в 16:43
Я не могу использовать директивы formcontrol в этом HTML, потому что он не связан с формой. Тем не менее, я смог получить аналогичный эффект, используя директиву (change). Мне нужно щелкнуть за пределами поля, чтобы это сработало, но это работает.
 – 
dizzydizzy
29 Окт 2019 в 16:54