Я использую backbone, как .next
ниже, чтобы попытаться сделать, если пользователь .next
чтобы изменить URL-адрес и данные загрузки .next
ajax.
У меня проблема после того, как пользователь .next
только .next
URL, браузер перейти на предыдущую страницу не может работать, как ее решить?
также я просто начинаю обучать магистрали, пожалуйста, помогите мне просмотреть мой код, любое предложение будет оценено.
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>
Ваш браузер не может вернуться назад, потому что вы вызываете Backbone.history.navigate
с replace: true
, который обновляет URL-адрес без создания записи в истории браузера. Таким образом, правильный код:
Backbone.history.navigate('page/10', {trigger: true, replace: false});
Источник: http://backbonejs.org/#Router-navigate