我正在尝试将输入绑定到表单控件。这是输入:
<input [(ngModel)]="someProperty" ngControl="someProperty">
在组件中
someProperty: Control;
someForm:ControlGroup;
...
constructor(private _form_builder: FormBuilder){
this.someProperty = new Control('', Validators.required);
this.someForm = this._form_builder.group({
someProperty:this.someProperty
});
}
那么,是否允许将输入绑定到Form Control?很明显我不能这样做,因为当我跑步时,我的输入框中充满了[object Object]
。那么这样做的正确方法是什么?我可以创建单独的属性并以这种方式进行双向绑定,但控件是否应该能够处理绑定?
答案 0 :(得分:3)
someProperty
必须是<input>
的值。这将是一个字符串。 ngControl
应该引用控件
<input [(ngModel)]="somePropertyValue" ngControl="someProperty">
somePropertyValue: string;
someProperty: Control;
someForm:ControlGroup;
...
constructor(private _form_builder: FormBuilder){
this.someProperty = new Control('', Validators.required);
this.someForm = this._form_builder.group({
someProperty:this.someProperty
});
}
答案 1 :(得分:0)
如果要将表单控件绑定到输入,则需要使用ngFormControl
指令:
<input [(ngModel)]="somePropertyValue"
[ngFormControl]="someProperty">
或
<input [(ngModel)]="somePropertyValue"
[ngFormControl]="someForm.controls.someProperty">
ngControl
指令仅用于定义内联控件。
有关详细信息,请参阅此文章: