当前位置: 首页 > 面试题库 >

Angular2 FormBuilder:在自定义验证器中使用“ this”

苏墨竹
2023-03-14
问题内容

我正在使用带有自定义验证的Angular2的FormBuilder开发表单。问题:在customValidator中,我this用来访问本地对象dataundefined执行验证时出现错误。

看起来customValidator是在其他对象中执行的,因此更改了this引用

问题: 如何传递this对customValidator 的引用?

export class Ast {
    public data:any;
    public myForm:FormGroup;

    constructor(private _fb:FormBuilder) {
        this.data = {foo: "bar"};
    }

    customValidator(c: FormControl) {
        if (this.data.foo == "bar") { // This line crashes
            // DO something
        }
    }

   ngOnInit() {
       this.myForm = this._fb.group({
           some_field: ['', [<any>Validators.required], this.customValidator]
       })
   }
}

问题答案:

使用箭头函数,以确保该函数绑定到此:

some_field: ['', [<any>Validators.required], c => this.customValidator(c)]


 类似资料:
  • 问题内容: 我有其他人编写的REST api,其中处理请求到特定url的方法接受一堆从路径参数填充的参数。 撰写此文章的人曾经使用过DropWizard,但我以前没有使用它的经验。我的任务是通过将其与db中的值进行比较来验证studentId字段。这将非常简单,但是我被告知要使用自定义验证程序来执行此操作。我对编写注释非常陌生,但经过大量挖掘后,这样编写了注释, 此后,我将注释添加到了要像这样运行

  • 我正在构建一个Spring Boot应用程序,并试图为我将在服务层验证的一些DTO/实体实现自定义验证。基于Spring关于这个问题的文档,我认为一种方法是实现org。springframework。验证。验证程序界面。 作为一个最小、完整、可重复的示例,请考虑以下代码: Spring初始化引导项目 在src/main/java/com中添加了以下代码。实例使用验证: 如果我点击endpoint触

  • 问题内容: 我将Laravel应用程序从4升级到5。但是,我有一个自定义验证器,无法使用。 在L4中,我制作了一个 validators.php 文件,并使用将其包含在 global.php 中。 我尝试在L5中做一些相同的事情。我在 app / Validators / Validators.php中 放置了一个验证 器 ,并更新了 composer.json 。 但是,现在任何页面上都没有呈现

  • 我正在用Spring和Thymeleaf填表: MyForm如下所示: 正如您所看到的,我做了一个自定义注释,它应该检查输入值是否可以解析为: 现在在我的Controller类中,我正在执行以下操作: 但是,当试图将放入文本字段以测试验证时,获取: 下面是我读到的示例,并希望用自定义验证器进行扩展:http://viralpatel.net/blogs/spring-mvc-hashmap-for

  • 问题内容: 我需要做一个自定义验证WTForms当输入为:数量:数量 -例如,2:1 所以,我的问题是-如何创建这种验证器? 问题答案: 你可以通过编写方法在表单内编写自定义验证器。如果它引发,则该表格将无效并显示错误。 对于你的特定情况,这是使用正则表达式的解决方案。它找到字符串的匹配项,然后使用一些拆分来取回分数。验证你可以通过访问分数的形式后。

  • 我正在尝试编写一个自定义bean验证器,并根据用户界面上的语言环境显示验证消息。 为此,我创建了一个验证器,如下所示: 我还注册了messageSource和validator bean: 在我的控制器中,我使用initBinder注册我的验证器: 不过,验证错误消息在用户界面上显示为{myproject.myclass.validation.name}。即使我设置了LocalValidatorF