Использование [(значения)] вместо [(ngModel)]

#angular

#angular

Вопрос:

Я проверяю угловые примеры и застрял на [(ngModel)] приведенной ниже ссылке. Как я могу использовать [(value)] вместо [(ngModel)] этого?

 <div *ngIf='!editMode' (click)='editMode=true' class='cell'>
    {{currency}} {{ data | number:'':'en' }}
</div>
<input *ngIf='editMode'
       (focusout)="onFocusOut()"
       (keydown.enter)='$event.target.blur()'
       [(ngModel)]='data'
       class='cellInput'
       type='number'
       (focusout)="editMode=false">
 

ссылка на stackblitz

Комментарии:

1. Как this:stackblitz.com/edit/angular-inline-edit-uq3me8 ?

2. чего ты хочешь на самом деле?

Ответ №1:

  • ngModel — это директива, которая позволяет вашему вводу участвовать в форме (но работает и без формы).
  • значение — это свойство, к которому вы можете привязать значение с помощью [value]=»name», в то время как (valueChange)=»…» не работает, потому что элемент не имеет @Output() valueChange ; поэтому [(value)]=»…» недопустимо.

Ответ №2:

Да, но вы не сможете получить привязку директивы ngModel и директивы ngForm, которые могут предложить вам некоторые проверки с помощью ссылок.

Ответ №3:

Я не понимаю вопроса? Вы спрашиваете, можете ли вы использовать value вместо ngModel ? вот так 👇

 <input
  *ngIf="editMode"
  type="number"
  class="cellInput" 
  (focusout)="onFocusOut()"
  (keydown.enter)="$event.target.blur()"
  (focusout)="editMode=false" 
  [(value)]="data"
>
 

Если это так, то ответ отрицательный. Angular вызывает двустороннюю привязку к входным данным html с ngModel помощью . Но свойство входного значения — это то, что angular привязывает к ngModel переменной (т.Е. data ).

В противном случае, пожалуйста, уточните свой вопрос. Спасибо