angularjs:将数据传递给ui-dialog指令

时间:2013-07-04 14:04:50

标签: angularjs modal-dialog angularjs-directive angular-ui

我正在使用$ 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'
}
}]);

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

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

知道我应该改变什么吗?

1 个答案:

答案 0 :(得分:1)

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

你称之为data所以它应该是 -

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

正如旁注 - 我将提取打开$对话框到外部视图控制器而不是指令内部的行为,因为它看起来像我的应用程序逻辑,指令应该希望可以重用。