1

是否有可能或目前有一种方法可以在创建时拦截所有模态实例并绑定到它的承诺值?

理想情况下,我想创建一个 Angular 装饰器来执行此操作,但应用程序引导程序上没有可用的 $modalInstance 提供程序,只有 $modal 可用。

每当在我的应用程序中打开模式时,我想这样做以执行一些常见的系统范围的操作。

谢谢

4

1 回答 1

1

我不确定这是否是此任务的最佳解决方案,但是当我不得不做同样的事情时,这就是我用来解决这个问题的方法。$modalservice 定义了另一个名为的辅助服务$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

于 2014-11-16T20:59:32.280 回答