#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">
Комментарии:
1. Как this:stackblitz.com/edit/angular-inline-edit-uq3me8 ?
Ответ №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
).
В противном случае, пожалуйста, уточните свой вопрос. Спасибо