@ngxs/form-plugin:处理单个字段更改

Posted

技术标签:

【中文标题】@ngxs/form-plugin:处理单个字段更改【英文标题】:@ngxs/form-plugin: handling single field change 【发布时间】:2020-03-04 23:25:06 【问题描述】:

表单插件提供UpdateFormValue 操作,允许处理表单字段的更改。但是,它会针对表单的每个字段更改进行调度。因此,如果我在一个表单中有多个字段(例如电子邮件和姓名)并且我想对电子邮件更改做一些事情但忽略姓名更改,我必须在组件中订阅 valueChanges observable,如下所示:

...
this.myForm.controls.email.valueChanges.subscribe(emailValue => 
    /* dispatch my special action Actions.UserChangedEmail or something */


这是正确的方法还是可以在使用@Action(UpdateFormValue) 或类似的方法的状态下处理它?

【问题讨论】:

【参考方案1】:

你可以用这个

 this.myForm.get('email').valueChanges.subscribe(value => 
    this.myForm.get('email').setValue(value,  onlySelf: true, emitEvent: false, emitModelToViewChange: true );
, error =>  , () =>  );

【讨论】:

我认为您没有理解这个问题。我有一个由 NGXS 及其表单插件管理的状态。我想对 NGXS 状态类中的单个字段更改(忽略其他字段值的更改)做出反应,就像我为该状态调度的其他操作一样。

以上是关于@ngxs/form-plugin:处理单个字段更改的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ReactJS 中的单个函数处理表单字段中的错误?

仅使用单个指针字段存储双向链表

是否可以在单个变量(批处理文件)中分配多个值?如果没有,有没有办法以更有效的方式运行它?

是否有更简洁的 linq 方式来“联合”单个项目?

日期时间日历:在单个输入字段中选择日期范围

通过 Netezza 查询将行折叠成单个字段