Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular ControlValueAccessor无法清除输入';s值_Angular - Fatal编程技术网

Angular ControlValueAccessor无法清除输入';s值

Angular ControlValueAccessor无法清除输入';s值,angular,Angular,单击“清除”按钮时,值被重置(我知道这一点,因为我显示了所需的验证消息),但该值仍显示在输入元素中。如何清除视觉元素的文本和值 自定义组件标记: <input type="text" [(ngModel)]="value" name="value"> <input type="button" (click)="onClear()" value="clear"/

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

自定义组件标记:

<input type="text" [(ngModel)]="value" name="value">
<input type="button" (click)="onClear()" value="clear"/>
get value(){
返回此.val;
}
绑定到双向绑定的
[(ngModel)]
,因此需要
getter

获取值(){
返回此.val;
}

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

组件内部是否也有getter?我的意思是
get value(){return this.val}
@yash-我没有。与[(ngModel)]双向绑定是否需要此功能?是的!它是required@yash-我没意识到!似乎有效。继续添加它作为答案,这样我就可以接受了。哦,是的,只是添加了一个组件中是否也有一个getter?我的意思是
get value(){return this.val}
@yash-我没有。与[(ngModel)]双向绑定是否需要此功能?是的!它是required@yash-我没意识到!似乎有效。继续,把它作为答案加上,这样我就可以接受了。哦,是的,刚刚加上
  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 = ""; 
  }