Backbone.js 不会路由到与当前 URL 相同的 URL

标签 backbone.js routing backbone-routing

我在导航/路由 URL 时遇到问题。比如说,我目前在 #contact/new我再次请求相同的 url,然后它没有调用相应的函数。我需要将 URL 更改为例如 #contact/edit然后点击 #contact/new正在工作中。从同一个 URL 路由 URL 现在是个问题吗?

最佳答案

我最终通过提前调用无提示导航到根解决了这个问题:

var url = window.location.pathname.substr(Backbone.history.root.length);
this.navigate('/', { trigger: false });
this.navigate(url, { trigger: true });

请记住,这将创建一个额外的历史记录条目,但就我而言,这并不重要。

您也可以通过更改 fragment 使其在没有历史条目的情况下工作。 Backbone.history 的属性(property)对象,但是这个属性应该是私有(private)的,所以我会三思而后行,然后再玩弄它:)

fragment 属性用于将当前 URL 与传递给导航函数的 URL 进行匹配,因此如果它们不匹配,路由将执行。

关于Backbone.js 不会路由到与当前 URL 相同的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9503238/

相关文章:

javascript - 'undefined' 不是函数(评估 'Backbone.$(window).on(' hashchange',this.checkUrl)')

javascript - 不调用主干路由

javascript - Backbone 模型如何从 Ajax 结果触发事件?

javascript - 下划线模板的自定义解析

routing - 萨米路由不起作用

asp.net-mvc - 如何将 "/img/"路由到 ASP.NET MVC 3 中的 "/Content/img"文件夹?

javascript - 在 Backbone 中删除和取消绑定(bind) subview

javascript - backbone js this.model.get 不是一个函数

routing - 特定资源路由操作的别名 ("/sign_in"而不是 "/sessions/new")

javascript - 如何检测Backbone.History Referer(历史长度)