По какой-то причине мой код всегда возвращает ту же модель, хотя я вижу, что правильный идентификатор передается после выбора элемента на странице listView.Backbone fetch() всегда возвращает ту же модель
// main.js (relavent function)
venueDetails: function (id) {
// here, id is correct
var venue = new Venue({_id: id});
venue.fetch({success: function(){
// here, the id of venue is changed for some reason
console.log(venue.id);
$("#content").html(new VenueView({model: venue}).el);
}});
this.headerView.selectMenuItem();
},
модель,
// model.js (relavent model)
var base = 'http://localhost:3000';
window.Venue = Backbone.Model.extend({
urlRoot: base+"/venues",
idAttribute: "_id",
});
window.VenueCollection = Backbone.Collection.extend({
model: Venue,
url: base+"/venues?populate=true"
});
На картинке вы можете увидеть, где model.id отличается от Whats в URL
EDIT: добавлено отображение маршрутизатор
var AppRouter = Backbone.Router.extend ({
routes: {
"" : "home",
<!-- venues -->
"venues" : "venueList",
"venues/page/:page" : "venueList",
"venues/add" : "addVenue",
"venues/:id" : "venueDetails",
Ты видя правильный ответ GET и ответ? Попробуйте с сетевой панелью в firebug. – dierre
Хмм, к тому времени, когда он делает запрос на сервер api, он передает неправильный идентификатор. Есть ли какой-то метод, который я должен переопределить, чтобы увидеть, где он может заменить идентификатор? – remotevision
просто используйте console.log (место.ид) после инициализации модели. Печатает ли неправильный идентификатор? Также вставьте сопоставление маршрутизатора. – dierre