一方面我的问题非常基本,但另一方面总体情况更复杂,而且我无法真正获得任何工作样本。
我正在开发/维护一个 Web 应用程序,该应用程序目前正在从 GWT 代码库过渡到 Ember.js。
大多数较新的代码已经依赖于 Ember.js,我认为它真的很棒。问题是我们不能使用 Ember 路由器,因为所有请求都由 GWT 处理。为了使应用程序能够在这种不寻常的配置中运行,我们有特殊的 JavaScript 文件来为我们创建 Ember 主要对象(控制器和模型)。
正如您可以想象的那样,选项卡之间的导航很麻烦,并且由 GWT 处理,GWT 在需要时创建 Ember 对象。我们正在走向一个勇敢的新世界 Ember Router 和所有。
但与此同时,这是我现在面临的问题。
用户单击一个链接,该链接会打开一个页面,该页面包含一些基于 Ember 的表格。使用一些 Ajax 代码从服务器检索数据。成功后,它会生成一个 forEach 循环,该循环尝试将所有接收到的日期推送到我们基于 Ember 的组件中。
当用户在选项卡之间快速切换时,就会出现我的问题。在这种情况下,第一个对象列表还没有完成渲染,突然有一组新的对象需要处理。这会导致 Ember 抛出如下错误:“未捕获的错误:无法对不在 DOM 中的 Metamorph 执行操作。”
和
“未捕获的 NotFoundError:试图在不存在的上下文中引用节点。”
是否可以防止循环尝试渲染?我试过检查有问题的控制器是否已经在DOM中,有没有办法通知Ember这个对象不再有效?
对于一个冗长的问题和缺乏运行样本,我们深表歉意。