【发布时间】:2013-09-13 10:58:29
【问题描述】:
一方面我的问题非常基本,但另一方面一般情况更复杂,而且我无法真正获得任何工作样本。
我正在开发/维护一个 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 这个对象不再有效?
抱歉,问题冗长且缺少运行示例。
【问题讨论】:
-
在您的 gwt 标签页中,您可以在标签页更改之前执行一些 javascript 吗?
-
我已经这样做了