0

我正在使用 $dialog 指令在我的应用程序中显示一个对话框。该对话框是从另一个指令打开的:

angular.module('axa.directDebit.directives').directive("mandateHistoryDetail", ['$dialog', function($dialog) {
return {
    restrict: 'E',
    template: '<a class="btn btn-small" ng-click="openDialog()">Détail</a>',
    scope: {
        model: '='
    },
    link: function (scope, element, attrs) {
        scope.openDialog = function(){
            var d = $dialog.dialog({
                backdrop: true,
                keyboard: true,
                backdropClick: true,
                dialogFade: true,
                templateUrl: 'app/directDebit/views/mandates.detail.history.detail.html',
                controller: 'mandates.detail.history.detail.ctrl',
                resolve: {
                    data: function () {
                        return scope.model;
                    }
            }
            });
            d.open();
        }
    },
    controller: 'mandates.detail.history.detail.ctrl'
}
}]);

我遇到的问题是,从对话框的控制器中,我想访问调用指令的范围。特别是上述代码中的“模型”属性。

我尝试过使用解析,但我不知道如何从对话框控制器获取数据。

知道我应该改变什么吗?

4

1 回答 1

1

在对话框控制器中,您应该将其添加为依赖项。

data这么叫它应该是——

angular.module('yourModule').controller('mandates.detail.history.detail.ctrl', 
                                        function($scope, data){ 
 ...
});

顺便说一句 - 我会提取打开 $dialog 到外部视图控制器而不是指令内部的行为,因为它看起来像应用程序逻辑对我来说,指令应该渴望可重用。

于 2013-07-04T14:07:26.240 回答