Marionette を 1 週間使用していますが、生活が本当に楽になりました。
一部のビューはレンダリング/フェッチにかなりの時間がかかるため、コレクションまたはモデルがフェッチされているときにユーザーに通知できるようにする必要があります。例を挙げると、私は小さなモックアップを作りました:
ユーザーがカテゴリをクリックすると、そのカテゴリ内のすべてのアイテムのコレクションが読み込まれる必要があります。コレクションが取得される前に、画像 (ビュー 1) に見られるように、読み込み中のビューを表示したいと考えています。これを実装するためのエレガントなソリューションは何でしょうか。ユーザーがフェッチ トリガーを有効にしている次の投稿を見つけました: http://tbranyen.com/post/how-to-indicate-backbone-fetch-progress。これは機能しているように見えますが、私が望んでいたようではありません。これは私が思いついたものです:
var ItemThumbCollectionView = Backbone.Marionette.CollectionView.extend({
collection: new ItemsCollection(userId),
itemView: ItemThumbView,
initialize: function(){
this.collection.on("fetch", function() {
//show loading view
}, this);
this.collection.on("reset", function() {
//show final view
}, this);
this.collection.fetch();
Backbone.history.navigate('user/'+identifier);
this.bindTo(this.collection, "reset", this.render, this)
}
});
たとえば、「LoadItemView」というオプションの属性があればいいのですが。これは、フェッチ中に itemView をオーバーライドします。あなたの意見では、これは良い習慣でしょうか?