【发布时间】:2019-02-21 09:37:41
【问题描述】:
我正在尝试在不使用 ngModel 的情况下将表单项绑定到对象。但它不起作用。
我尝试使用 [(value)]="" 属性。但是,元素的初始值更改为“未定义”。
https://material.angular.io/components/input/overview
<mat-form-field class="col-md-4">
<input matInput placeholder="First name" formControlName="firstCtrl" [(value)]="formData.firstName">
<mat-error>First name can not be left blank</mat-error>
</mat-form-field>
formData = new RawFormData;
但是这个工作正常:
<mat-form-field>
<mat-select placeholder="Title" formControlName="titleCtrl" [(value)]="formData.gender">
<mat-option *ngFor="let title of personalTitle" [value]="title.value">{{title.viewValue}}</mat-option>
</mat-select>
</mat-form-field>
【问题讨论】:
-
使用 ngModel 进行双向绑定。 ngModel 有什么问题。发布错误
-
如果你需要双向绑定试试这个:stackoverflow.com/questions/52290322/…
-
ngModel 的问题是:看起来您在与 formControlName 相同的表单字段上使用 ngModel。 Angular v6 中已弃用对使用 ngModel 输入属性和 ngModelChange 事件和响应式表单指令的支持,并将在 Angular v7 中删除。有关这方面的更多信息,请在此处查看我们的 API 文档:angular.io/api/forms/FormControlName#use-with-ngmodel
-
只要在后台创建formGroup
firstCtrl: ['Foo']的时候设置它的默认值,或者在得到需要的数据后更新它的值。myForm.get('firstCtrl').setValue('Foo');. -
所以你是说如果你使用有棱角的材料,你会失去双向绑定而不需要额外的编码?
标签: angular forms input angular-material two-way-binding