【发布时间】:2014-05-29 22:46:38
【问题描述】:
我在 Ember.js 应用程序中使用 Ecwid,但遇到了冲突。简而言之,Ecwid 会加载一些将电子商务商店嵌入页面的 JavaScript。问题在于 Ecwid 和 Ember 都修改了 URL 片段以跟踪状态,因为 Ecwid 本质上是它自己的单页应用程序。基本上,我有两个不同的 JS 库争夺 URL。
因此,当我使用 Ecwid 组件时,URL 会更改为 Ecwid URL,并且 Ember 会向 Assertion failed: The route !/~/category/id=2104219&offset=0&sort=normal was not found 抱怨,因为那是 Ecwid 路由,而不是 Ember 路由。
我尝试了一个包罗万象的 Ember 路由,但这并没有真正奏效,因为 Ember 状态从我所在的页面改变了。
是否有人不得不处理与 Ember 争夺 URL 的第二个库?如果是这样,您是如何维护状态并处理其他应用程序的?随着 pushState 和 URL 片段变得越来越流行,我可以想象这将变得越来越相关。
【问题讨论】:
-
真的,您将不得不在两者之间进行选择,如果它们都使用 url 进行某种性质的路由,那么它们都依赖于基本 url 的某些概念,并具有不断变化的哈希值。在 Ember 中,您可以禁用位置路由,但随后您将失去 ember 的路由功能。
-
这就是我害怕的:/好吧,在我的情况下,Ecwid 是一个硬要求,所以 Ember 必须去:*(为了得到答案,你能不能发布如何打开Ember 的路由功能?
标签: javascript ember.js pushstate