Angular 2 : Find out if FormControl has required validator?

标签 angular forms typescript validation

如果为控件注册了所需的验证器,有人知道找到 Angular2 FormControl 的方法吗?

this.form = builder.group({name: ['', Validators.required]};

然后我可以查询 this.form.controls['name'] 控件是否是必填字段吗?我知道我可以检查它是否有效,但这不是我想要的。

亲切的问候, 马克

最佳答案

这个函数应该适用于 FormGroups 和 FormControls

  export const hasRequiredField = (abstractControl: AbstractControl): boolean => {
    if (abstractControl.validator) {
        const validator = abstractControl.validator({}as AbstractControl);
        if (validator && validator.required) {
            return true;
        }
    }
    if (abstractControl['controls']) {
        for (const controlName in abstractControl['controls']) {
            if (abstractControl['controls'][controlName]) {
                if (hasRequiredField(abstractControl['controls'][controlName])) {
                    return true;
                }
            }
        }
    }
    return false;
};

关于 Angular 2 : Find out if FormControl has required validator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39819123/

相关文章:

javascript - Angular Material datepicker 手动打开

javascript - Angular - 使用可观察对象从静态 Web 服务中删除数据

javascript - 表单 "submit"按钮文本(和宽度/高度/值)在按键时消失或更改 btn 值

reactjs - React Typescript Hook 错误 - 该表达式不可调用

javascript - 递归迭代 Promise

javascript - 将 HTML 转换为 PDF 时如何在每个页面的底部添加页脚

angular - 使用 jasmine angular2 注入(inject)私有(private)服务的单元测试

javascript - 用于 JQuery 登录的 HTML 表单或 div?

html - 如何禁用网络表单字段/输入标签上的浏览器自动完成功能?

angular - 模板变量,直接在模板中读取自定义实例