У меня есть один основная домашняя страница в моем приложении и другой странице для каждой должности, которые могут быть доступны через список отображается на главной странице ..Backbone Collection получить (идентификатор) метод
это как мой маршрутизатор выглядит :
var AppRouter = Backbone.Router.extend({
initialize: function(){
this.model = new model();
this.collection = new collection();
},
routes: {
"" : "showForm",
"post/:id" : "showPost"
},
showPost: function(id){
var curmodel = this.collection.get(id);
var post = new postView({model:curmodel});
post.render();
$(".maincontainer").html(post.el);
},
showForm : function(){
var qcView = new qcV({model:this.model, collection:this.collection});
qcView.render()
$(".maincontainer").html(qcView.el);
}
});
это то, что одна из ссылок на посты в этом списке выглядит
<h2><a id= "<%=_id%>" href="#post/<%=_id%>"><%=name%></h2></a>
мой первый вопрос: является ли это опасно связывать страницы с хэш на основе URL в этом манера?
мой второй вопрос: у меня нет проблем с навигацией к просмотру сообщений, если я нажму одну из ссылок на моей домашней странице. Я мой url успешно изменяет что-то вроде http://127.0.0.1:3000/#post/51ffdb93c29eb6cc17000034
и визуализируется конкретное сообщение. Однако в этот момент, если я обновляю страницу, или если я непосредственно набираю http://127.0.0.1:3000/#post/51ffdb93c29eb6cc17000034
в моей строке URL, метод this.collection.get(id)
в моем методе showPost в маршрутизаторе возвращает undefined
. Может ли кто-нибудь помочь мне разобраться, почему это так?
Я проверил несколько раз, что мой метод инициализации вызывается как раз, и моя коллекция и модель успешно
Это действительно интересно, потому что коллекция существует, я вижу ее, когда печатаю ее в своей консоли. Я даже вижу модель, которую я ищу. –
Мы, очевидно, пропустили что-то важное. Где вы извлекаете данные? –