Я очень запутался в использовании метода выборки backbone.js. Смотрите следующий пример
магистральный маршрутизатор:как backbone.js модель fetch метод работает
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, я пытаюсь выяснить, но никаких шансов.
сначала спасибо за ответ, это очень хорошее описание. У меня есть еще вопрос, после того, как fetch() выпустил событие sync, представление будет автоматически отображаться? предложения, которые вы мне даете, можете ли вы привести несколько примеров, потому что я довольно новичок в backbonejs и javascript, я хорошо знаю этот язык, но не очень хорошо. –
urlroot будет отменен правильно? Суть этой базы var = _.result (это, 'urlRoot') || _.result (this.collection, 'url') || urlError() ;? –
Для вашего первого вопроса ни одно событие синхронизации не будет автоматически отображать представление. Если вы хотите включить это, добавьте следующее: «view.on (« sync », this.render, this);» –