dart - 是否可以设置控件的有效属性?

标签 dart angular angular2-forms

给定控件titleCtrl,有没有办法设置其有效属性?

我试过了

。镖

titleCtrl.valid = false;

但这会引发错误。但是获取有效状态是没有问题的。

最佳答案

validControl属性是只读属性。您无法分配值。使某事物变为无效的正确方法是创建一个自定义验证器

这是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团队尚未发布有关用法的任何文档,因此我无法在中提供示例,但是我试图消除尽可能多的特定于 typescript 的噪音,以帮助使答案尽可能通用。

关于dart - 是否可以设置控件的有效属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35236526/

相关文章:

flutter - Flutter:如何在ListView的底部使按钮居中?

angular - PrimeNG 树表为空

asp.net - 使用 Asp.Net Web Api 实现 Angular 2

Angular 2 : Template driven form, 将对象从选定元素传递到提交对象

angular - 为什么在提交时更新对象中的值

regex - replaceAllMapped与span元素匹配

Flutter 如何将 http.dart 连接更改为 SSL HTTPS

api - 执行 POST 请求时出现 CERTIFICATE_VERIFY_FAILED 错误?

angular - 无法将变量设置为 html 元素属性

javascript - 如何使用动态输入字段在组件中设置数据? ( Angular 2)