骨干路线发射两次

时间:2013-10-22 17:40:05

标签: backbone.js marionette backbone-routing

我正在使用Backbone和Marionette,我有一个麻烦的路线似乎是两次射击,路线参数不同。单击后退时,它会返回到路径的第一次触发,而不是原始页面。使用Backbone Debugger,我可以看到我有6个不同的路由器,其中只有一个(突出显示)具有适用的路由。所以只有一个例子。

enter image description here

路由由普通旧链接触发。我没有使用navigate()。这是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路由的工作原理,为什么我的路由定义与incidentId匹配和不匹配。这是有趣的事情。如果我接受该链接并将其粘贴到浏览器中,则该路由仅触发一次。

1 个答案:

答案 0 :(得分:2)

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

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

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