在Angular2中如何知道任何输入字段何时失去焦点..!如果我在表单上使用observable:
form.valueChange.subscribe...
Run Code Online (Sandbox Code Playgroud)
不会工作,因为我真的想知道什么时候一个字段丢失它的模糊(焦点)所以我可以更新我的商店(如果我在失去焦点之前更新商店,我的光标在文本输入上移动到最后,因为数据被交换这看起来很奇怪)
当然我也可以添加(change)=""每个输入,但我有很多'...
我在考虑各种各样的事情:
this.form.valueChanges.debounceTime(1000).subscribe((changes:any) => {
if (this.form.dirty){
this.appStore.dispatch(this.resellerAction.updateResellerInfo(changes))
}
});
Run Code Online (Sandbox Code Playgroud)
但问题是脏污仍然很脏,所以它陷入了永久性的变化检测循环......
TX
肖恩
我正在使用Angular2 + TypeScript,当我尝试执行此代码时:
var event = new Event('check');
window.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)
此代码导致下一个错误:
无法在'EventTarget'上执行'dispatchEvent':参数1不是'Event'类型。
我已经尝试了所有方法,发现可以使用:
var event = new CustomEvent('check');
Run Code Online (Sandbox Code Playgroud)
问题是任何IE不支持CustomEvent。
另一件有效的方法是:
var event = new Event('CustomEvent');
event.initCustomEvent('check');
Run Code Online (Sandbox Code Playgroud)
问题是不赞成使用InitCustomEvent。
我有什么办法可以避免这种类型的错误?也许在打字稿中的某个地方例外?还是使用不被弃用且适用于IE Edge的任何代码?