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 = "";
}