backbone.js - 主干路线发射两次

标签 backbone.js marionette backbone-routing

我将 Backbone 与 Marionette 一起使用,并且有一条麻烦的路线,似乎使用不同的路线参数触发了两次。当您单击“返回”时,它会将您带回第一次触发的路线,而不是原始页面。使用 Backbone Debugger,我可以看到我有 6 个不同的路由器,并且只有其中一个(突出显示)具有适用的路由。所以只有一个实例。

enter image description here

该路由由普通的旧链接触发。我没有使用导航()。这是实际的链接 HTML:

<a href="#device/3/hash/84855d0624dbeb7957cad7d09f7faca78166f033ab71e53aa6199f285d6d903f/incident/8IFVA" class="btn btn-actions action-details">
    <span></span> &nbsp;App
</a>

当我单击该链接时,您可以看到使用两个不同签名触发的路线:

enter image description here

enter image description here

我觉得我可能误解了 Backbone 路由的工作原理,为什么我的路由定义与事件 ID 匹配或不匹配。有趣的是。如果我获取该链接并将其粘贴到浏览器中,则该路线只会触发一次。

最佳答案

通常,当路线或事件多次触发时,通常意味着在您来回导航时 View 未得到正确处理。

由于您确定自己没有进行任何手写导航,因此情况似乎就是这样,特别是当您手动访问 URL 时只看到此触发器一次时。

在没有看到您的路由器或查看代码的情况下,很难真正为您提供可靠的解决方案。我将开始在该特定路由处理程序上放置断点,并检查触发它的调用堆栈。

关于backbone.js - 主干路线发射两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19524711/

相关文章:

javascript - 如何在删除模型 :backbone. js 和 marionettejs 时使用另一个模板

apache - Backbone.js 路由器在本地主机上使用 pushstate 和 XAMPP apache 服务器

javascript - 如何在初始页面加载时禁用 Backbone.js 路由

javascript - 使用 pushState 为 Backbone SPA 配置 node express

backbone.js - 如何从 Backbone Marionette 中的项目 View 实例访问复合 View

javascript - backbone.js 不会触发我的事件

javascript - 主干模型未在 SAVE 上发送数据

javascript - Require.js 中没有定义调用函数

javascript - 使用 Backbone Collection 构建列表