Ank*_*ngh 5 typescript angular2-forms angular
Q1.是否有可能有一个控件,即:
ValidNumber = new Control('', CustomValidators.number({min:1, max:10}))
Run Code Online (Sandbox Code Playgroud)
验证input模板中所有类似的字段类型?
Q2.这些字段可以由ngFor?生成?
FailedMethod 1:验证有效但值已耦合.
<input [ngFormControl]="ValidNumber" name="num1" type="number"/>
<input [ngFormControl]="ValidNumber" name="num2" type="number"/>
Run Code Online (Sandbox Code Playgroud)
FailedMethod 2:使用formBuilder,它与上面相同.
<form [ngFormModel]="formBuiltWithFormBuilder">
<input ngControl="ValidNumber" name="num1" type="number"/>
<input ngControl="ValidNumber" name="num2" type="number"/>
</from>
Run Code Online (Sandbox Code Playgroud)
客观澄清:
我正在尝试验证可能使用ngFor生成的表单字段,并且需要类似的验证.
没有在别处重复定义类似的控件
我可以使用任何其他方法提取的值,#form="ngForm"或者ngModel,我想要的ngControl是验证.
你也可以生成控件那就没有问题了。
@Component({
...
template: `
...
<input *ngFor="let c in controls" [ngFormControl]="c" name="c.name" type="number"/>
...
`
})
class MyComponent {
// initialization with `['a', 'b', 'c']` just for demo purposes
// these values probably come from outside - hence @Input()
@Input() controlNames:string[] = ['a', 'b', 'c'];
controls: Control[];
ngOnInit() {
this.controlNames.forEach(
v => this.controls.push(
new Control('', CustomValidators.number{min:1, max:10})
)
);
}
}
Run Code Online (Sandbox Code Playgroud)
(代码未测试)
controls发生变化时需要更新controlNames。ngOnInit()仅运行一次。
| 归档时间: |
|
| 查看次数: |
2473 次 |
| 最近记录: |