मैं अब एक सप्ताह के लिए मैरियनेट का उपयोग कर रहा हूं और यह वास्तव में मेरे जीवन को आसान बना देता है!संग्रह या मॉडल लाने पर ट्रिगर लोडिंग दृश्य
अभी संग्रह या मॉडल प्राप्त होने पर मुझे उपयोगकर्ता को सूचित करने में सक्षम होना चाहिए, क्योंकि कुछ विचारों को प्रस्तुत करने/लाने के लिए पर्याप्त समय लगता है। एक उदाहरण देने के लिए मैं एक छोटे से mockup कर दिया है:
एक उपयोगकर्ता एक वर्ग पर क्लिक करता है, उस श्रेणी में सभी वस्तुओं का संग्रह लोड करने के लिए की जरूरत है। संग्रह प्राप्त होने से पहले मैं छवि में देखे गए लोडिंग व्यू को प्रदर्शित करना चाहता हूं (देखें 1)। इसे लागू करने के लिए एक सुरुचिपूर्ण समाधान क्या होगा। मुझे निम्न पोस्ट मिली है जहां उपयोगकर्ता एक fetch ट्रिगर सक्षम बनाता है: 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' नामक एक वैकल्पिक विशेषता हो सकता है: यह कुछ मैं के साथ आया है। जो एक fetch के दौरान आइटम दृश्य को ओवरराइड करेगा। क्या यह आपकी राय में एक अच्छा अभ्यास होगा?
संग्रह.ऑन ('fetch') के बजाय collection.on ('request') का उपयोग करें। और collection.fetch ({reset: true}) collection.fetch() के बजाय। ;) –