将此上下文作为自定义验证器中的参数传递

凯文·维莱拉·平托

我尝试在自定义异步验证器中传递一个类属性,但是undefined当我从这个验证器记录它时它的值仍然总是......

从 CustomValidators.js :

static isValidPlace(place: Place, controlName: string): AsyncValidatorFn {
    return (control: FormControl): Observable<{ [key: string]: boolean }> => {
      console.log('control', control.value);
      console.log('place', place);

      if (place && place.label !== control.value)
        return Observable.of({ 'invalidPlace': true });

      return Observable.empty();
    }
}

从组件:

city: FormControl = this.fb.control(
  '', 
  Validators.required, 
  CustomValidators.isValidPlace(this.citySelection, 'city').bind(this)
);

我在场上附加(更改)事件,触发以下 fn :

onSelectionCity = (selection: Place): Place => this.citySelection = selection;

问题:如何citySelection通过我的自定义验证器传递更新的属性?


我想做的事 :

当用户单击结果列表时,我需要一个由 api 发送的 id,该结果列表本身取决于在 formControl(输入)中键入的值。

问题是,当用户更改值时,我必须考虑 formControl 无效,因为验证输入字段的唯一方法是单击列表以获取 id。同时,如果值改变,id 变得不正确,我想应用这个行为。

示例:想象一下 Google 搜索引擎与著名的“搜索”按钮略有不同。事实上,当您在搜索字段中写入一些内容时,就会显示一个列表。现在您单击其中一项。

现在想象一秒钟,按钮需要一个 id 来搜索正确的信息,而这个 id 正在触发 clicks 事件。

您的 id 很棒,但是更改文本,输入字段必须无效,因为您之前获得的 id 与您潜在的新搜索请求不同。

我的建议是将包含标签、id 和selectionCity保存在我的组件类上的点击事件中的其他内容的完整对象与 formControl 的实际值进行比较,以通过简单的三重比较来确定有效性。

用户4676340

与其尝试将组件绑定到验证器,不如在 ID 更改后重新创建表单控件或更新其验证器。

onValueChange = () => {
  this.myForm.controls['controlName']
    .clearValidators() 
    .setValidators([
      Validators.required,
      CustomValidators.isValidPlace(this.citySelection, 'city')
  ]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从自定义验证器中的验证上下文的基本类型中获取价值

来自分类Dev

自定义验证期间Magical Record Core数据中的上下文保存问题

来自分类Dev

TypeScript中的JsTree自定义上下文菜单

来自分类Dev

在Django的上下文处理器中设置自定义用户对象

来自分类Dev

如何在groovy中将上下文传递给自定义定义的方法?

来自分类Dev

如何将对象属性作为参数传递给Struts自定义验证器

来自分类Dev

如何自定义Django Rest身份验证电子邮件上下文

来自分类Dev

在Spring Boot中何时使用自定义上下文路径而不是根上下文

来自分类Dev

如何在Xubuntu XFCE Thunar文件管理器中自定义文件上下文菜单?

来自分类Dev

如何在Xubuntu XFCE Thunar文件管理器中自定义文件上下文菜单?

来自分类Dev

在Windows资源管理器中自定义Winrar上下文菜单处理程序

来自分类Dev

如何将绑定上下文传递给自定义处理程序调用?

来自分类Dev

React-leaflet自定义组件-上下文未传递?

来自分类Dev

Azure移动服务同步上下文:添加自定义参数

来自分类Dev

如何传递函数作为上下文参数?

来自分类Dev

如何将函数作为上下文参数传递?

来自分类Dev

自定义角度验证器-传递参数

来自分类Dev

自定义运算符以抑制接收器上下文

来自分类Dev

如何对自定义上下文管理器进行单元测试?

来自分类Dev

Django 编写自定义上下文处理器

来自分类Dev

shared_ptr<> 的自定义删除器给出“无上下文错误”

来自分类Dev

自定义 VSTO 上下文菜单 - 活动检查器

来自分类Dev

防止在作为参数传递的函数中丢失“ this”变量的上下文

来自分类Dev

Spring Boot:注入自定义上下文路径

来自分类Dev

将自定义服务注入Behat上下文

来自分类Dev

JSON-LD自定义上下文

来自分类Dev

ASP身份自定义上下文

来自分类Dev

ASP身份自定义上下文

来自分类Dev

Python十进制自定义上下文

Related 相关文章

  1. 1

    从自定义验证器中的验证上下文的基本类型中获取价值

  2. 2

    自定义验证期间Magical Record Core数据中的上下文保存问题

  3. 3

    TypeScript中的JsTree自定义上下文菜单

  4. 4

    在Django的上下文处理器中设置自定义用户对象

  5. 5

    如何在groovy中将上下文传递给自定义定义的方法?

  6. 6

    如何将对象属性作为参数传递给Struts自定义验证器

  7. 7

    如何自定义Django Rest身份验证电子邮件上下文

  8. 8

    在Spring Boot中何时使用自定义上下文路径而不是根上下文

  9. 9

    如何在Xubuntu XFCE Thunar文件管理器中自定义文件上下文菜单?

  10. 10

    如何在Xubuntu XFCE Thunar文件管理器中自定义文件上下文菜单?

  11. 11

    在Windows资源管理器中自定义Winrar上下文菜单处理程序

  12. 12

    如何将绑定上下文传递给自定义处理程序调用?

  13. 13

    React-leaflet自定义组件-上下文未传递?

  14. 14

    Azure移动服务同步上下文:添加自定义参数

  15. 15

    如何传递函数作为上下文参数?

  16. 16

    如何将函数作为上下文参数传递?

  17. 17

    自定义角度验证器-传递参数

  18. 18

    自定义运算符以抑制接收器上下文

  19. 19

    如何对自定义上下文管理器进行单元测试?

  20. 20

    Django 编写自定义上下文处理器

  21. 21

    shared_ptr<> 的自定义删除器给出“无上下文错误”

  22. 22

    自定义 VSTO 上下文菜单 - 活动检查器

  23. 23

    防止在作为参数传递的函数中丢失“ this”变量的上下文

  24. 24

    Spring Boot:注入自定义上下文路径

  25. 25

    将自定义服务注入Behat上下文

  26. 26

    JSON-LD自定义上下文

  27. 27

    ASP身份自定义上下文

  28. 28

    ASP身份自定义上下文

  29. 29

    Python十进制自定义上下文

热门标签

归档