我一直在使用木偶一個禮拜,它真的讓我的生活更輕鬆!觸發器加載視圖收集或模型獲取
現在我需要能夠在獲取集合或模型時通知用戶,因爲某些視圖需要大量時間來呈現/獲取。舉個例子,我做了一個小樣機:
當用戶點擊某個類別,需要加載該類別中的所有項目的集合。在獲取集合之前,我想顯示一個加載視圖,如圖中所示(視圖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。你認爲這會是一個很好的做法嗎?
使用collection.on('request')而不是collection.on('fetch')。和collection.fetch({reset:true})而不是collection.fetch()。 ;) – 2013-12-05 08:41:03