【问题标题】:jquery-mobile backbone.js routingjquery-mobile 骨干网.js 路由
【发布时间】:2011-06-24 10:05:21
【问题描述】:

我有一个backbone.js / jquery 移动应用:

当我对 mydomain.com/#map 进行 GET 操作时,jquery 会执行“/”然后加载 #map。

因为首先触发了“/”,所以会加载所有的backbone.js 脚本,包括我的map-controller.js 中的backbone.js 路由(“map”:“functionForMapRoute”)。 由于 URL 包含 /#map,因此在 jquery mobile 呈现 dom 之前触发了主干.js 路由“map”。

所以“functionForMapRoute”不能在 div 上操作,因为此时 DOM 没有完全加载。

我如何确保在 DOM 完全加载之前不会触发“地图”路由?

【问题讨论】:

标签: jquery-mobile backbone.js


【解决方案1】:

使用与 jquery mobile 更集成的东西,例如 jquerymobile-router(您可以在 github 上找到它)。它取代了骨干网的路由器,它可以与jquery mobile和backbone.js或spine.js一起使用

【讨论】:

  • jqm 旨在与backbone.js 一起使用,在另一个路由工具中混合不能成为解决方案。
【解决方案2】:

我发现如果你不在骨干路由器中使用“/”就可以了。

例如:

使用

"category-:id": "category"

而不是这个

"category/id/:id": "category"

我猜这就是他们在官方教程中使用相同概念的原因:P http://jquerymobile.com/test/docs/pages/Backbone-Require/js/routers/mobileRouter.js

"category?:type": "category"

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,这里是避免使用 jquerymobile-router 的解决方案:Backbone.js and jQueryMobile routing without hack or other router

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 2013-09-28
      • 2014-12-04
      • 2012-11-18
      • 1970-01-01
      相关资源
      最近更新 更多