【问题标题】:Backbone route is firing twice主干路由触发了两次
【发布时间】:2013-10-31 17:27:14
【问题描述】:

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

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

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

当我点击那个链接时,你可以看到路由被两个不同的签名触发:

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

【问题讨论】:

    标签: backbone.js marionette backbone-routing


    【解决方案1】:

    通常,当路由或事件多次触发时,这通常意味着在您来回导航时未正确布置视图。

    由于您确定自己没有进行任何手写导航,因此情况似乎确实如此,尤其是当您手动访问 URL 时仅看到一次此触发器时。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      相关资源
      最近更新 更多