对text
和number
输入使用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
。
我已经尝试过了 -
[type]="inputElementType"
[type]="getInputElementType()"
type="{{getInputElementType()}}"
这些都没有正确设置formControl
。
答案 0 :(得分:0)
看起来这是不可能的,因为type不是@input而是选择器的一部分。您可以实现自己的ControlValueAccessor,它将类型作为输入。这是Angular的NumberValueAccessor:
@Directive({
selector:
'input[type=number][formControlName],input[type=number]
[formControl],input[type=number][ngModel]',
...
})