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(new ProfileView({model:model})); 、changeview関数は次のようになります。
changeView: function(view) {
if ( null != this.currentView ) {
this.currentView.undelegateEvents();
}
this.currentView = view;
this.currentView.render();
},
レンダー ビューの後、プロファイル情報はまだ表示されませんが、model.fetch(); の後です。ステートメントを実行すると、モデルからのデータが表示されますが、なぜですか? フェッチがどのように機能するのか本当にわかりません。見つけようとしますが、チャンスはありません。