我正在使用像下面的骨干,如果用户单击.next
,请更改URL,而Ajax发送片段加载数据。
用户单击.next
仅更改URL后,我有问题,浏览器GO上一页无法正常工作,如何求解它?
我也只是开始学习骨干,请帮助我查看我的代码,任何建议都会很感激。
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>
您的浏览器无法向后移动,因为您使用replace: true
选项调用Backbone.history.navigate
,该选件可更新URL而不在浏览器的历史记录中创建条目。因此,正确的代码将是:
Backbone.history.navigate('page/10', {trigger: true, replace: false});
来源:http://backbonejs.org/#router-navigate