gpt4 book ai didi

javascript - ControlValueAccessor(更改)事件被触发两次(Angular 4)

转载 作者:行者123 更新时间:2023-12-01 17:30:08 24 4
gpt4 key购买 nike

我使用 ControlValueAccessor 创建了一个自定义组件 (my-custom-input)。它有效,但 change 事件被触发了两次。我的组件中触发更改事件的函数如下所示:

private myval: string;

@Input() disabled: boolean = false;
@Output() change = new EventEmitter<string>();

fireChange() {
console.log("Change emit");
this.change.emit(this.myval);
console.log("Change callback");
this.onChangeCallback(this.myval);
console.log("Touch emit");
this.onTouchedCallback(this.myval);
}

这是我在其他组件中监听变化的方式,我尝试使用 my-custom-input:

<my-custom-input [(ngModel)]="this.data" (change)="vChanged()"></my-custom-input>

vChanged() {
console.log("change", this.data);
}

这是我在控制台中看到的内容:

Change emit
change "oldvalue"
Change callback
Touch emit
change "newvalue"

为什么 change 回调被调用了两次?

最佳答案

也许试试这个:

<my-custom-input [ngModel]="this.data" (change)="vChanged()"></my-custom-input>

关于javascript - ControlValueAccessor(更改)事件被触发两次(Angular 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48749112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com