我正在使用backbone构建我的网页应用。
目前我面临的问题是,如果我在主页上,我无法通过再次点击“主页”按钮来刷新同一页面。
我相信这是backbone提供的限制(如果调用相同的URL,则不重新加载页面)
有没有什么方法可以解决这个问题?也就是说,当我再次点击主页按钮时,可以触发页面重新加载,即再次调用相同的URL?
我正在使用backbone构建我的网页应用。
目前我面临的问题是,如果我在主页上,我无法通过再次点击“主页”按钮来刷新同一页面。
我相信这是backbone提供的限制(如果调用相同的URL,则不重新加载页面)
有没有什么方法可以解决这个问题?也就是说,当我再次点击主页按钮时,可以触发页面重新加载,即再次调用相同的URL?
Backbone.View = Backbone.View.extend({
refreshPage: function(e){
if(e.target.pathname){
Backbone.history.navigate(e.target.pathname);
}
window.location.reload();
}
});
如果我们有这样的链接
<a href="/whatever" id="whateverId">Some text </a>
events: {
'click #whateverId': 'refreshPage',
}
只要我们不需要更改“a标签”,这是一种更干净的解决方案,可以节省一些样板代码
希望能有所帮助
它可以正常工作
myBackboneRouter.navigate("users", {trigger: true})
通常您可以修改您的路由以包含一个splat,这样您就可以在href的末尾追加一个随机字符串使其变得唯一,但仍然匹配“home”路由。(请注意:将此作为最后一个路由)。
在路由中:
routes: {
"*str": "home"
}
在视图中:
render: function() {
var data = {href: +(new Date())};
_.extend(data, this.model.attributes);
this.$el.html(this.template(data));
return this;
}
在模板中(这里展示的是handlebars):
<a href="{{href}}">Home Link</a>