在输入字段中同时使用value和ngModel吗?

时间:2018-11-17 05:22:24

标签: angular typescript angular-forms

此概念与用户个人资料有关。我想使用输入的 [value] 属性从api分配一个值(userData.email_id),更改后我想使用 ngModel 将数据返回TS到email_id属性。

在这里,我无法使用[value]将值分配给输入。向我提出解决方案。

注意:这里的userData.email_id来自服务器。

TS:

 email_id: string;

html:

          <mat-form-field>
                <input
                  type="text"
                  placeholder="Email"
                  matInput
                  [(ngModel)]="email_id"
                  [value]="userData.email_id"
                  name="uEmail"                     
                />
              </mat-form-field>

1 个答案:

答案 0 :(得分:1)

您可以直接使用 [(ngModel)] 并将其设置为该值,然后通过 ngModelChange 进行更改,如下所示,因此删除 [value]

<mat-form-field>
                <input
                  type="text"
                  placeholder="Email"
                  matInput
                  [(ngModel)]="userData.email_id"
                  (ngModelChange)="sendData(userData)"
                  name="uEmail"                     
                />
</mat-form-field>

编辑

如果不想在每个字段中处理此问题,则可以创建一个按钮,通过以下方式将所有更改发送到服务器,

<button (click)="sendData(userData)"></button>

在这种情况下,您不需要在每个输入中输入 ngModelChange