Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将预定义的验证器添加到Angular中的自定义组件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个与Angular中的表单一起使用的自定义组件.我正在实现ControlValueAccessor接口,它工作得很好.

但是,我的组件没有理由在没有必需的验证器(它是CAPTCHA)的情况下使用,因此组件的所有调用都必须指定所需的验证器.

是否有可能以某种方式将此验证器直接嵌入到我的组件中,因此当与ngModel和表单(基于模板的和反应的)一起使用时,它将始终应用于它?

澄清.考虑这个例子:

<my-captcha [(ngModel)]="firstCaptcha" required></my-captcha>

<my-captcha [(ngModel)]="secondCaptcha" required></my-captcha>

<my-captcha [(ngModel)]="thirdCaptcha" required></my-captcha>

上面对MyCaptcha组件的所有调用都必须使用required属性,以便将所需的验证器应用于表单控件.

是否可以在不明确指定所需属性的情况下调用我的自定义控制器,但是仍然应用了验证器?像这样:

<my-captcha [(ngModel)]="captchaValue"></my-captcha>

解决方法

这触发了使用和抽象类并扩展它的想法.

因此,将所需的验证器嵌入到所有表单组件中的方法可能是这样的:

export abstract class FormValidationClass implements ControlValueAccessor {
     // Implement your validation methods for your standard form including required validator

    protected formModel:<any>;        

    protected constructor() {
    }

    public requiredValidatorMethod() { 
        // Do stuff here with formModel,for example 
    }
}

而且,在您实际创建具有表单的组件的位置:

export class UserFilter extends FormValidationClass implements OnInit {

      protected formModel:<any>;

      this.requiredValidatorMethod (this.formModel);
}

因此,只要您的类声明受保护的formModel并扩展FormValidationClass,您就可以使用FormValidationClass中的方法,并避免每次为具有表单的每个组件添加特定逻辑.

这将是我将逻辑嵌入到包含表单的所有组件的方式,在这种情况下,将所需的验证器嵌入到包含需要验证的表单的所有组件中.

希望它有帮助或至少有用!让我知道事情的后续!

干杯!

大佬总结

以上是大佬教程为你收集整理的将预定义的验证器添加到Angular中的自定义组件全部内容,希望文章能够帮你解决将预定义的验证器添加到Angular中的自定义组件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: