将默认值添加到文本输入角度2

wun*_*uno 4 javascript typescript angular

背景

我有一个包含用户电子邮件地址的输入字段的表单.我正在使用插值将电子邮件添加到placeholder字段中.

问题

我不希望用户能够在此字段中更改电子邮件地址.我只希望他们能够看到它.但我确实希望它与表格一起发布.

我不断尝试不同的方式和无论什么form不确实post的电子邮件.我怎么能bind这样它实际上post是表单时的电子邮件地址submitted

例子

我试过了readonly.这样他们就无法改变它.

 <input type="text" class="form-control" id="email" [(ngModel)]="personal.email" name="email" #email="ngModel" placeholder="{{auth.user.email}}" value="{{auth.user.email}}" readonly>
Run Code Online (Sandbox Code Playgroud)

我试过,readonly如果我不添加任何限制标志,它是否会起作用.

 <input type="text" class="form-control" id="email" [(ngModel)]="personal.email" name="email" #email="ngModel" placeholder="{{auth.user.email}}" value="{{auth.user.email}}">
Run Code Online (Sandbox Code Playgroud)

我知道电子邮件是可访问的,因为我将它添加到占位符字段并显示在表单中.它不会发布.

Gün*_*uer 11

默认值将是分配给的值personal.email.

或者,您可以绑定到不同的属性

[(ngModel)]="personalEmail"
Run Code Online (Sandbox Code Playgroud)

并在代码或使用中为personalEmail提交更新分配默认值persona.email

[ngModel]="personalEmail" (ngModelChange)="personal.email = $event"
Run Code Online (Sandbox Code Playgroud)

从变化发生时获取初始值personalEmail并更新personal.email

这可能也有效(未尝试过)

[ngModel]="personal.email || 'defaultValue'" (ngModelChange)="personal.email = $event"
Run Code Online (Sandbox Code Playgroud)

'defaultValue'如果personal.email是,则仅被分配null