Показать сообщение отдельно
  #2 (permalink)  
Старый 28.12.2011, 04:30
Новичок на форуме
Отправить личное сообщение для aleksp Посмотреть профиль Найти все сообщения от aleksp
 
Регистрация: 15.12.2011
Сообщений: 9

Странно, что никто так и не ответил тут. Задача на самом деле очень распространенная. Если топикстартеру ещё актульно, то подскажу. Тебе нужно изучить тему deferred-объектов в jQuery. Любой AJAX-запрос в последних версиях является таким объектом. Такие же объекты можно создавать и для своих нужд. Не буду вдаваться в подробности - в сети куча уже информации на эту тему. Конкретно в твоём случае решение таково:

Раз Model::fetch возвращает deferred-объект, значит делаем так
initialize: function() {

    var self = this;

    $.when(this.model1.fetch(), this.model2.fetch())
        .done(function() {
            // Здесь код в случае успешного выполнения всех запросов
            self.render();
        })
        .fail(function() {
           // Здесь код, если произошел сбой
        });
}


Здесь метод $.when() ждет когда будут выполнены все deferred объекты. Их может быть сколько угодно:
$.when(this.model1.fetch(), this.model2.fetch(), ...., this.modelN.fetch())

Последний раз редактировалось aleksp, 28.12.2011 в 04:38.
Ответить с цитированием