首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular:将输入值重置为先前的值

Angular:将输入值重置为先前的值
EN

Stack Overflow用户
提问于 2019-01-28 00:56:28
回答 1查看 3.8K关注 0票数 5

在Angular 2+中,是否可以通过编程方式将输入值重置为其先前的值?

我有'Select‘下拉列表,在选择一个值后,如果某些验证失败,我需要将它的值重置为前一个值。

如何使用ngModel (模板表单)和formControl (反应式表单)实现相同的功能?(只需要知道这两种方法是否可行)。

我已经知道,如果我们在模板的select标记中将ngModelChange事件放在ngModel之前,那么在ngModelChange事件中,我们会在更改之前获得ngModel的值。参考:https://github.com/angular/angular/issues/11234

但我认为这种方法并不简洁,有时可能会令人困惑。

EN

回答 1

Stack Overflow用户

发布于 2019-01-28 02:03:08

是的,可以使用Reactive forms方法和rxjs operator pairwise

在组件中使用rxjs运算符pairwisestartWith订阅formControl valueChanges

示例代码:

代码语言:javascript
复制
this.myForm.controls['control1'].valueChanges
  .pipe(startWith(1), pairwise()).subscribe(
    ([prevValue, selectedValue]) => {
      console.log(prevValue); // previous value
      console.log(selectedValue); // new value
    }
 );
} 

您还可以检查正在运行的DEMO

注意:我使用startWith是因为,当它有两个值(prev和current)时,pairwise将发送值。因此在startWith中添加默认值1 (默认选项的值)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54390556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档