如果用户点击.next
更改网址和ajax发送片段加载数据,我正在使用如下的骨干网尝试制作。
用户点击.next
后我的问题只有网址被更改,浏览器上一页无法正常工作,如何解决?
我也只是开始学习骨干,请帮我复习我的代码任何建议都会欣赏。
var Core = function() {
var Router = Backbone.Router.extend({
routes: {
'': 'func0', // root/article
'page/:id': 'func1' // root/article/page/:id
},
func0: function(p0) { // ajax send fragment load data
},
func1: function(p1) { // ajax send fragment load data
}
});
var Next = Backbone.View.extend({
el: '.next',
events: {
'click': 'onClick'
},
onClick: function() {
// console.log(Backbone.history.fragment);
// fragment to Backbone.history.navigate('page/'+fragment, {trigger: true, replace: true});
// for example
Backbone.history.navigate('page/10', {trigger: true, replace: true});
}
});
return {
init: function() {
var router = new Router();
Backbone.history.start({pushState: true, hashChange: false, root: '/root/public/article/'});
var next = new Next();
}
}
}();
HTML
<div class="next">next</div>
答案 0 :(得分:1)
您的浏览器无法倒退,因为您使用Backbone.history.navigate
选项调用replace: true
,该选项会更新网址而不会在浏览器的历史记录中创建条目。所以正确的代码是:
Backbone.history.navigate('page/10', {trigger: true, replace: false});