我对使用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 属性是什么呢?创建模型对象后,profileview 将使用this.changeView(new ProfileView({model:model})); ,changeview函数看起来像这样。
changeView: function(view) {
if ( null != this.currentView ) {
this.currentView.undelegateEvents();
}
this.currentView = view;
this.currentView.render();
},
在渲染视图之后,配置文件信息还不会显示,而是在model.fetch() 之后;语句执行,模型中的数据会显示出来,为什么?我真的不知道 fetch 是如何工作的,我试图找出答案,但没有机会。