尝试使用Backbone的navigation属性。
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中记录一次。
这是什么问题?我最初甚至没有将触发器设置为true,而Firefox忽略了该设置,但仍然触发了URL。
最佳答案
我最近遇到了类似的问题,Firefox在Backbone.navigate之后进行了两次服务器调用。就我而言,这是因为我们没有编码字符串。您的公司名称是否包含任何应编码的字符?
您可以尝试:
this.navigate("week/" + escape(companyName) + "/" + employeeNo + "/" + weekEnd, { trigger: true, replace: false });