2016-03-15 72 views
0

我試圖將輸入綁定到窗體控件。這裏是輸入:雙向數據綁定到窗體控件

<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 

    }); 

} 

那麼,是不是允許綁定輸入到窗體控件?很明顯,我無法做到這一點,因爲我的輸入框填充[object Object]當我運行。那麼做到這一點的正確方法是什麼?我可以創建單獨的屬性並以這種方式進行雙向綁定,但不應該控件能夠處理綁定?

+0

FYI ...'ngCtrl'是ctrl'其中ngModel涉及綁定值的'主要關注的當前狀態。 – micronyks

回答

1

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

+0

我明白,但是我們沒有辦法使用兩者的控制嗎?我記得控制也有價值。 – xmaestro

+0

'Control'有一個'value',但不應該被綁定。無論如何,目的是什麼?我沒有嘗試過,但是如果你省略'[(ngModel)] =「somePropertyValue」',你可能會得到你想要的。 –

+0

我只是在擔心正確的做法。但似乎我可以使用控件和屬性相同 – xmaestro