尝试使用 Backbone 的导航属性。
this.navigate("week/" + companyName + "/" + employeeNo + "/" + weekEnd, { trigger: true, replace: false });
上面的代码执行一次。
它击中了这个:
routes: {
"week/:companyName/:employeeNo/:weekEnd": "getWeek"
},
然后这个函数被命中两次:
getWeek: function (companyName, employeeNo, weekEnd) {
console.log('getWeek:', companyName, employeeNo, weekEnd);
}
它在 Firefox 中记录了两次,在 IE 和 Chrome 中仅记录了一次。
这里有什么问题?我最初甚至没有将 trigger 设置为 true,Firefox 忽略了它并仍然触发了 URL。
最佳答案
我最近遇到了类似的问题,Firefox 在 Backbone.navigate 之后做了两个服务器调用。就我而言,这是因为我们没有对字符串进行编码。您的公司名称是否有任何需要编码的字符?
你可以试试:
this.navigate("week/" + escape(companyName) + "/" + employeeNo + "/" + weekEnd, { trigger: true, replace: false });
关于firefox - 主干导航在 Firefox 中触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17727495/