是否可以设置控件的有效属性?
Is it possible to set the valid property of a Control?
给定一个控件 titleCtrl,有没有办法设置它的有效 属性?
我试过了
.飞镖
titleCtrl.valid = false;
但它会引发错误。不过获取有效状态没问题。
Control
的 valid
属性 是只读 属性。您不能分配该值。让某些东西变得无效的正确方法是创建一个自定义验证器
这是来自 Angular2 TypeScript 文档的示例代码片段
class CustomValidatorDirective implements Validator {
validate(c: Control): {[key: string]: any} {
return {"custom": true};
}
}
您的验证不需要在单独的 class 中,但是,当您使用 FormBuilder
创建 ControlGroup
时,您可以在各个控件上设置自定义验证。
@Component({...})
class MyComponent{
myForm: ControlGroup;
constructor(formBuilder: FormBuilder){
this.myForm = formBuilder.group({
myField: ['', Validators.compose([this.customValidation.bind(this)])],
});
}
customValidation(control: Control){
if(/* some condition */){
return {'myValidatorKey': true};
}
}
}
此技术可用于验证任何字段,包括依赖于其他字段值和任何其他逻辑的字段。
遗憾的是,Angular2 团队尚未发布任何关于 dart usage so I cannot provide examples in dart 的文档,但我已尝试删除尽可能多的特定于打字稿的噪音,以帮助使答案尽可能通用。
给定一个控件 titleCtrl,有没有办法设置它的有效 属性?
我试过了
.飞镖
titleCtrl.valid = false;
但它会引发错误。不过获取有效状态没问题。
Control
的 valid
属性 是只读 属性。您不能分配该值。让某些东西变得无效的正确方法是创建一个自定义验证器
这是来自 Angular2 TypeScript 文档的示例代码片段
class CustomValidatorDirective implements Validator {
validate(c: Control): {[key: string]: any} {
return {"custom": true};
}
}
您的验证不需要在单独的 class 中,但是,当您使用 FormBuilder
创建 ControlGroup
时,您可以在各个控件上设置自定义验证。
@Component({...})
class MyComponent{
myForm: ControlGroup;
constructor(formBuilder: FormBuilder){
this.myForm = formBuilder.group({
myField: ['', Validators.compose([this.customValidation.bind(this)])],
});
}
customValidation(control: Control){
if(/* some condition */){
return {'myValidatorKey': true};
}
}
}
此技术可用于验证任何字段,包括依赖于其他字段值和任何其他逻辑的字段。
遗憾的是,Angular2 团队尚未发布任何关于