Мой код выглядит следующим образом:Backbone.js маршруты не срабатывают правильно
var AppRouter = Backbone.Router.extend({
_data: null,
_length: 0,
_index: null,
_todos: null,
routes: {
"*action": "index",
"category/:name": "hashcategory"
},
initialize: function(options){
this._data = options.data;
this._todos = new TodosCollection(options.data);
this._length = this._todos.length;
this._index = new CategoriesView({collection: this._todos});
},
index: function(){
this._index.render();
},
hashcategory: function(name){
console.log('started');
}
});
initializeRouter = function (router) {
Backbone.history.start({ pushState: true });
$(document).on('click', 'a:not([data-bypass])', function (evt) {
var href = $(this).attr('href');
var protocol = this.protocol + '//';
if (href.slice(protocol.length) !== protocol) {
evt.preventDefault();
router.navigate(href, true);
}
});
return router;
};
var start = function(){
p = $.ajax({
url: 'data/todolist.json',
dataType: 'json',
data: {},
success: function(data) {
var approuter = initializeRouter(new AppRouter({data: data}));
}
});
};
У меня есть <a>
звено в моем HTML, который имеет href = "category/num1"
атрибут объявления. Но каждый раз, когда я нажимаю ссылку, она всегда показывает security error
в firebug. На самом деле, у меня просто одна страница index.html, то, что я хочу сделать, это добавить к ней строку, чтобы сделать фальшивую html-страницу, такую как folder/index.html/category/num1
, и все это будет отображаться на текущей странице. Но url, показанный мне, когда ссылка зависает, - folder/category/num1
. Поскольку этот путь на самом деле не существует в моей папке, я думаю, именно поэтому он показывает ошибку безопасности.
Итак, как исправить это? Должен ли я создать другую html-страницу и соответствующую папку? Или я могу сделать всю маршрутизацию на одной странице index.html?
ТНХ, URL-адрес близок к тому, что я ожидал, но соответствующий маршрут еще не правильно стрелять. – chaonextdoor