确认模态后执行操作(在指令中)

时间:2014-05-07 12:37:23

标签: angularjs angularjs-directive

在做一些动作之前,我已经写了一个指令来打开一个模态作为确认。触发模态结果函数,但我无法执行ngConfirmClick操作。

app.directive('ngConfirmClick', function( $modal ) {

    return {

        restrict: 'A',
        link: function(scope, element, attrs) {

            element.bind('click', function() {

                var message = attrs.ngConfirmMessage;
                var action = attrs.ngConfirmClick;

                var modalInstance = $modal.open({

                    templateUrl: 'views/modals/confirmClick.html',
                    controller: 'ConfirmClickCtrl',
                    resolve: {

                        message: function() { 

                            return message;

                        }

                    }

                });

                modalInstance.result.then(function() {

                   scope.$apply(action);

                });

            });

        }

    }

});


<button ng-confirm-message="Really delete user?" ng-confirm-click="delete(user)" type="button" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove"></span></button>

知道为什么apply函数不起作用?

1 个答案:

答案 0 :(得分:1)

标记中的

attribute总是被解释为字符串 - 这里没什么特别的。

将回调函数传递给指令的最简单方法如下:

app.directive('ngConfirmClick', function( $modal ) {

    return {

    // ... other options

    scope : {
        action : "&ngConfirmClick" // mind -&- at the beginning
    },

    link : funciton(scope, ...){

         scope.action();

    }
});

_P_L_N_K_R_