2017-04-15 39 views
0

使用Angular FormControl輸入textnumber輸入。我的問題是,兩者都記錄爲文本。Angular FormControl數據類型(數字)?

var control = this._formBuilder.control(this.settings[input.property]); 
control.valueChanges.subscribe((value: any) => { 
    console.log(typeof value); 
    console.log(value); 
}); 

而且我投入像這個 -

<input [name]="input.property" 
    [formControl]="control" 
    [type]="inputElementType" 
    class="form-control" id="form_control_1" placeholder=""> 

如果我設置type="number"它工作正常。但是,像這樣動態設置在dom上的正確類型,但沒有正確註冊formControl

我tried-

[type]="inputElementType" 
[type]="getInputElementType()" 
type="{{getInputElementType()}}" 

,並設置formControl這些都不正確。

回答

0

它看起來像是不可能的,因爲type不是@input而是選擇器的一部分。您可以實現您自己的ControlValueAccessor,它將類型作爲輸入。這裏是來自Angular的NumberValueAccessor:

@Directive({ 
selector: 
    'input[type=number][formControlName],input[type=number] 
    [formControl],input[type=number][ngModel]', 
... 
}) 
+0

有趣。我覺得這可能會在稍後造成問題。現在我剛剛爲我的類型創建了一個ngSwitch,並在那裏用靜態類型包裝整個輸入。 –