Я очень запутался в использовании метода выборки модели backbone.js. См. Следующий пример: магистральный маршрутизатор:
profile: function(id) {
var model = new Account({id:id});
console.log("<---------profile router-------->");
this.changeView(new ProfileView({model:model}));
model.fetch();
}
первый шаг, учетная запись модели будет создана, модель учетной записи выглядит следующим образом.
define(['models/StatusCollection'], function(StatusCollection) {
var Account = Backbone.Model.extend({
urlRoot: '/accounts',
initialize: function() {
this.status = new StatusCollection();
this.status.url = '/accounts/' + this.id + '/status';
this.activity = new StatusCollection();
this.activity.url = '/accounts/' + this.id + '/activity';
}
});
return Account;
});
свойство urlRoot для того, что это такое? После создания объекта модели профиль будет отображаться с помощью этого this.changeView(новый ProfileView ({model: model}));, функция changeview выглядит так.
changeView: function(view) {
if ( null != this.currentView ) {
this.currentView.undelegateEvents();
}
this.currentView = view;
this.currentView.render();
},
после просмотра рендеринга информация профиля пока не отображается, но после выполнения инструкции model.fetch(); будут отображены данные из модели, почему? Я действительно не знаю, как работает fetch, я пытаюсь выяснить, но никаких шансов.