我在导航/路由 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/