双向数据绑定到Form控件

时间:2016-03-15 09:05:29

标签: typescript angular

我正在尝试将输入绑定到表单控件。这是输入:

<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]。那么这样做的正确方法是什么?我可以创建单独的属性并以这种方式进行双向绑定,但控件是否应该能够处理绑定?

2 个答案:

答案 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

    });

}

另见https://angular.io/docs/ts/latest/guide/forms.html

答案 1 :(得分:0)

如果要将表单控件绑定到输入,则需要使用ngFormControl指令:

<input [(ngModel)]="somePropertyValue"
       [ngFormControl]="someProperty">

<input [(ngModel)]="somePropertyValue" 
       [ngFormControl]="someForm.controls.someProperty">

ngControl指令仅用于定义内联控件。

有关详细信息,请参阅此文章: