首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ControlValueAccessor无法清除输入的值

ControlValueAccessor无法清除输入的值
EN

Stack Overflow用户
提问于 2020-07-29 03:26:53
回答 1查看 105关注 0票数 1

单击clear按钮时,将重置该值(我知道这一点,因为我显示了所需的验证消息),但该值仍然显示在输入元素中。如何清除视觉元素的文本以及值?

自定义组件标记:

代码语言:javascript
复制
<input type="text" [(ngModel)]="value" name="value">
<input type="button" (click)="onClear()" value="clear"/>

打字脚本

代码语言:javascript
复制
  constructor(@Self() @Optional() private control: NgControl) {
    this.control.valueAccessor = this;
  }
 public val: string;
  set value(val: any) {
    if (val !== undefined && this.val !== val) {
      this.val = val;
      this.onChanged(val);
      this.onTouched(val);
    }
  }
  // START ---- ControlValueAccessor interface implementation ---- //
  public disabled: boolean;
  onChanged: any = () => { }
  onTouched: any = () => { }
  writeValue(value: any) {
    this.value = value;
  }
  registerOnChange(fn: any) {
    this.onChanged = fn
  }
  registerOnTouched(fn: any) {
    this.onTouched = fn
  }
  setDisabledState(isDisabled: boolean): void {
    this.disabled = isDisabled;
  }
  // END ---- ControlValueAccessor interface implementation ---- //

  onClear() {
    this.value = ""; 
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-29 03:45:09

代码语言:javascript
复制
get value() {
   return this.val;
}

value绑定到[(ngModel)],这是双向绑定,因此需要getter

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

https://stackoverflow.com/questions/63141455

复制
相关文章

相似问题

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