2017-04-15 12 views
0

Verwenden von Angular FormControl für text und number Eingänge. Mein Problem ist, dass beide als Text aufgezeichnet sind.Angular FormControl Datentyp (Zahl)?

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

Und schauen meine Eingaben wie this-

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

Wenn ich type="number" gesetzt es funktioniert gut. Wenn Sie jedoch so dynamisch sind, wird der richtige Typ für das Dom festgelegt, aber nicht korrekt mit dem formControl registriert.

Ich habe tried-

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

Und keiner von ihnen die formControl richtig eingestellt.

Antwort

0

Es sieht so aus, als sei es unmöglich, da der Typ kein @input, sondern ein Teil des Selektors ist. Sie können Ihren eigenen ControlValueAccessor implementieren, der den Typ als Eingabe akzeptiert. Hier ist NumberValueAccessor von Angular:

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

Interessant. Ich glaube, das kann später Probleme verursachen. Im Moment habe ich gerade einen ngSwitch für meine Typen erstellt und die gesamte Eingabe mit dem statischen Typ umgebrochen. –

Verwandte Themen