инициировать загрузку представления при извлечении коллекции или модели

Я использую Marionette уже неделю, и это действительно сделало мою жизнь проще!

Прямо сейчас мне нужно иметь возможность уведомлять пользователя, когда извлекается коллекция или модель, потому что некоторые представления требуют значительного времени для рендеринга/выборки. Для примера я сделал небольшой мокап:

http://i.stack.imgur.com/IU3BP.png

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

8
задан Boedy 10 August 2012 в 15:45
поделиться