我正在尝试为我的界面创建一个错误处理对话框。该对话框将简单地显示来自iron ajax的错误消息。我能够访问此消息,并希望在ajax返回错误时触发一个事件。下面是触发事件的代码:
testError(e) {
const err = e.detail.request.xhr.response.message;
this.dispatchEvent(new Event('error'));
}下面是添加事件监听器的代码:
class ErrorHandling extends Polymer.Element {
static get is() { return 'error-handling'; }
static get properties() {
return {
}
}
constructor() {
super();
this._boundListener = this.error.bind(this);
}
connectedCallback() {
super.connectedCallback();
window.addEventListener('error', this._boundListener);
console.log("connectedCallback ran");
}
disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('error', this._boundListener);
console.log("disconnectedCallback ran");
}
_boundListener(e) {
console.log("boundlistener ran");
}我已经通读了文档,试图找出为什么这不起作用,但没有成功。有没有什么原因导致这个不起作用?
发布于 2018-06-20 20:09:51
您需要使用Custom Events。有了这一点,您可以添加选项冒泡: true,这将使事件冒泡,直到它到达窗口。
this.dispatchEvent(new CustomEvent('error', {bubbles: true}));要接收此事件,您必须register一个事件侦听器:
window.addEventListener('error', this.myEventListener)https://stackoverflow.com/questions/50945744
复制相似问题