Я использую Marionette уже неделю, и это действительно сделало мою жизнь проще!
Прямо сейчас мне нужно иметь возможность уведомлять пользователя, когда извлекается коллекция или модель, потому что некоторые представления требуют значительного времени для рендеринга/выборки. Для примера я сделал небольшой мокап:
Когда пользователь щелкает категорию, необходимо загрузить коллекцию всех элементов в этой категории. Прежде чем коллекция будет извлечена, я хочу отобразить представление загрузки, как показано на изображении (представление 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 во время выборки. Будет ли это хорошей практикой, на ваш взгляд?