我将 Backbone 与 Marionette 一起使用,并且有一条麻烦的路线,似乎使用不同的路线参数触发了两次。当您单击“返回”时,它会将您带回第一次触发的路线,而不是原始页面。使用 Backbone Debugger,我可以看到我有 6 个不同的路由器,并且只有其中一个(突出显示)具有适用的路由。所以只有一个实例。
该路由由普通的旧链接触发。我没有使用导航()。这是实际的链接 HTML:
<a href="#device/3/hash/84855d0624dbeb7957cad7d09f7faca78166f033ab71e53aa6199f285d6d903f/incident/8IFVA" class="btn btn-actions action-details">
<span></span> App
</a>
当我单击该链接时,您可以看到使用两个不同签名触发的路线:
我觉得我可能误解了 Backbone 路由的工作原理,为什么我的路由定义与事件 ID 匹配或不匹配。有趣的是。如果我获取该链接并将其粘贴到浏览器中,则该路线只会触发一次。
最佳答案
通常,当路线或事件多次触发时,通常意味着在您来回导航时 View 未得到正确处理。
由于您确定自己没有进行任何手写导航,因此情况似乎就是这样,特别是当您手动访问 URL 时只看到此触发器一次时。
在没有看到您的路由器或查看代码的情况下,很难真正为您提供可靠的解决方案。我将开始在该特定路由处理程序上放置断点,并检查触发它的调用堆栈。
关于backbone.js - 主干路线发射两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19524711/