Отображение нескольких модальных окон в цикле

Я использую Angular UI Modals (http://angular-ui.github.io/bootstrap/#modal)

Я должен показывать одно и то же модальное окно несколько раз в цикле.

Например, у меня есть команда, и мне нужно показать модальное окно редактирования члена команды для каждого человека подряд (в основном это мастер)

У меня проблема в том, что он открывает ВСЕ модальные окна, расположенные друг над другом, и я хотел бы, чтобы они открывались по одному.

for (var i = 0; i < team.SizeLimit; i++) {
    var participant = { }; // assume this hold the correct participant

    var openModal = $modal.open({
        templateUrl: '/Modals/Participant/Edit.html',
        backdrop: true,
        windowClass: 'modal',
        controller: 'ModalParticipantController',
        resolve: {
            title: function () { return 'Edit Participant'; },
            participant: function () { return participant; }
        }
    });

    openModal.result.then(function (data) {
        alert('success!');
    }); 
}

Как я могу заставить его открывать их последовательно, когда модальные окна закрываются по одному?


person CaffGeek    schedule 05.01.2014    source источник


Ответы (1)


Я не пользователь angularJs, но некоторое время назад у меня была такая же проблема.

вместо того, чтобы создавать модальные окна в цикле, вы создаете цикл с самими модальными окнами, в котором вы проверяете следующего участника при закрытии текущего модального окна. (я предполагаю, что openModal.result.then() - это обратный вызов для этого)

var fnOpenModal = function(i) {
        if (i >= team.sizeLimit)
            return;

        var participant = team[i],
            openModal = $modal.open({
                ....
            });

        openModal.result.then(function (data) {
            alert('success!');
            fnOpenModal(i + 1);
        });
    }
fnOpenModal(0);

это определенно не лучшее решение, но оно работает быстро :-)

person DoXicK    schedule 05.01.2014
comment
Выглядит многообещающе, я так и думал, но каникулы и каникулы, похоже, атрофировали мой мозг. - person CaffGeek; 06.01.2014
comment
ну, я просто посмотрел на ваш профиль и подумал: «Зачем парню с таким опытом спрашивать об этом?». Вы только что дали разумное объяснение, ха-ха. - person DoXicK; 06.01.2014