Backbone.history.navigate之后无法进入上一页

时间:2014-03-09 09:27:34

标签: javascript jquery backbone.js

如果用户点击.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>

1 个答案:

答案 0 :(得分:1)

您的浏览器无法倒退,因为您使用Backbone.history.navigate选项调用replace: true,该选项会更新网址而不会在浏览器的历史记录中创建条目。所以正确的代码是:

Backbone.history.navigate('page/10', {trigger: true, replace: false});

来源:http://backbonejs.org/#Router-navigate