在我的按钮(鼠标按下)之前强制其他组件 运行(更改)
Force other components to run (change) before my button's (mousedown)
我有一个 formly with mousedown 按钮,它有一个名为“analyzeClick()”的方法
<button *ngIf="show" (mousedown)="analyzeClick()" id={{htmlID}}>
{{label}}
</button>
现在,我们也有输入
有一个(更改)事件运行一个名为“saveData()”的方法
<input id={{htmlID}} type="text" [formControl]="frmControl" (change)="saveData()" />
但是,我们发现在您输入输入并立即单击按钮后,(mousedown) 先运行 before(更改)
问题是 analyzeClick 上的方法需要 saveData 上的数据..
我已尝试按指定应用超时
public analyzeClick(): void {
let i = 0;
(() => {
if (++i > 1) {
return;
}
setTimeout(function(){
console.log('Iteration: ' + i);
}, 15000);
this.runTheCode();
})();
}
但是,按钮的(鼠标按下)在输入的(更改)之前先运行
在这种情况下,我需要做什么才能确保输入的(更改)先于(鼠标按下)运行??
有 4 个事件需要考虑:
change
input
mousedown
click
input
立即发生,因此这是绝对确保看到您的更改的一种方法。
mousedown
出现在 change
之前 - 所以在您第一次按下鼠标时,您不会获得输入的值
click
出现在 change
之后 - 因此也可以安全使用。
例如参见stackblitz。
我有一个 formly with mousedown 按钮,它有一个名为“analyzeClick()”的方法
<button *ngIf="show" (mousedown)="analyzeClick()" id={{htmlID}}>
{{label}}
</button>
现在,我们也有输入 有一个(更改)事件运行一个名为“saveData()”的方法
<input id={{htmlID}} type="text" [formControl]="frmControl" (change)="saveData()" />
但是,我们发现在您输入输入并立即单击按钮后,(mousedown) 先运行 before(更改) 问题是 analyzeClick 上的方法需要 saveData 上的数据..
我已尝试按指定应用超时
public analyzeClick(): void {
let i = 0;
(() => {
if (++i > 1) {
return;
}
setTimeout(function(){
console.log('Iteration: ' + i);
}, 15000);
this.runTheCode();
})();
}
但是,按钮的(鼠标按下)在输入的(更改)之前先运行
在这种情况下,我需要做什么才能确保输入的(更改)先于(鼠标按下)运行??
有 4 个事件需要考虑:
change
input
mousedown
click
input
立即发生,因此这是绝对确保看到您的更改的一种方法。
mousedown
出现在 change
之前 - 所以在您第一次按下鼠标时,您不会获得输入的值
click
出现在 change
之后 - 因此也可以安全使用。
例如参见stackblitz。