Как украсить $modalInstance в Angular

Возможно ли это, или в настоящее время существует способ перехватить все модальные экземпляры при создании и привязать его к значениям обещания?

В идеале я хотел бы создать для этого Angular декоратор, но в загрузчике приложения нет поставщика $modalInstance, доступен только $modal.

Я хотел бы сделать это для выполнения некоторых общесистемных операций всякий раз, когда модальное открывается в моем приложении.

Спасибо

1 ответ

Решение

Я не уверен, что это оптимальное решение для этой задачи, но именно так я обычно решал эту проблему, когда мне приходилось делать то же самое. $modal служба определяет другую вспомогательную службу под названием $modalStack который имеет несколько полезных методов. Вы можете посмотреть его getTop метод:

app.run(function($rootScope, $modalStack) {
    $rootScope.$watch(function() {
        return $modalStack.getTop();
    }, function(newValue, oldValue) {
        if (newValue !== oldValue) {
            if (newValue) {
                console.log('opened', newValue);
            }
            else {
                console.log('closed', oldValue);
            }
        }
    });
});

Демонстрация: http://plnkr.co/edit/sm6jGqlITxgQkRt3EHXN?p=info

Другие вопросы по тегам