当用户注销然后使用浏览器后退按钮返回上一页时,会遇到以下错误:
Error: Assertion Failed: Cannot call writeWatching after the object is destroyed.
我无法将问题隔离到可以在当前环境之外再现的程度,Ember GitHub存储库上的其他开发人员(即here和here)已经报告了一个问题再现性。
从我进行的调用堆栈跟踪中,我可以说该错误是由以下Ember函数执行的:
setDebugFunction('assert', function assert(desc, test) {
if (!test) {
throw new _emberDebugError.default('Assertion Failed: ' + desc);
}
并且调用堆栈从此Ember函数开始:
onUpdateURL: function (callback) {
var _this = this;
this._removeEventListener();
this._popstateHandler = function () {
// Ignore initial page load popstate event in Chrome
if (!popstateFired) {
popstateFired = true;
if (_this.getURL() === _this._previousURL) {
return;
}
}
callback(_this.getURL());
};
window.addEventListener('popstate', this._popstateHandler);
},
但是,我完全不知道为什么会这样。任何见识将不胜感激