给定控件titleCtrl,有没有办法设置其有效属性?
我试过了
。镖
titleCtrl.valid = false;
但这会引发错误。但是获取有效状态是没有问题的。
最佳答案
valid
的Control
属性是只读属性。您无法分配值。使某事物变为无效的正确方法是创建一个自定义验证器
这是Angular2 TypeScript文档中的示例代码片段
class CustomValidatorDirective implements Validator {
validate(c: Control): {[key: string]: any} {
return {"custom": true};
}
}
但是,您的验证不必位于单独的类中,当您使用
ControlGroup
创建FormBuilder
时,可以在各个控件上设置自定义验证。@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用法的任何文档,因此我无法在dart中提供示例,但是我试图消除尽可能多的特定于 typescript 的噪音,以帮助使答案尽可能通用。
关于dart - 是否可以设置控件的有效属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35236526/