使用[[value)]代替[[ngModel)]

时间:2019-04-18 13:40:23

标签: 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 link

3 个答案:

答案 0 :(得分:0)

是的,但是您将无法获得ngModel指令和ngForm指令绑定,它们可以通过引用为您提供一些验证。

答案 1 :(得分:0)

  • ngModel是一个指令,可让您的输入参与到 形式(但也可以不使用形式)
  • value是一个属性,您可以使用[value] =“ name”将值绑定到 (valueChange)=“ ...”不起作用,因为该元素不起作用 有一个@Output()valueChange;因此[(value)] =“ ...”无效。

答案 2 :(得分:0)

我不明白这个问题?您是否在问是否可以使用value代替ngModel?像这样

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

如果是,答案是否定的。 Angular使用ngModel调用对HTML输入的双向绑定。但是输入值属性是与ngModel变量(即data)绑定的角度。

否则,请详细说明您的问题。谢谢