ngConfirmClick 在评估表达式之前确认

描述:

在用户确认后评估表达式。

参数:

  • ng-confirm-click :( 表达式 )确认时评估的表达式。
  • ng-confirm-message :( 模板 )确认对话框中显示的消息。

码:

Directives.directive("ngConfirmClick", ["$parse","$interpolate",function ($parse,$interpolate) {
    return {
        restrict:"A",
        priority:-1,
        compile:function(ele,attr){
            var fn = $parse(attr.ngConfirmClick, null,  true);
            return function ngEventHandler(scope, ele) {
                ele.on('click', function (event) {
                    var callback = function () {
                        fn(scope, {$event: "confirm"});
                    };
                    var message = $interpolate(attr.ngConfirmMessage)(scope) || 'Are you sure?';
                    if(confirm(message)) {
                        if (scope.$root.$$phase) {
                            scope.$evalAsync(callback);
                        } else {
                            scope.$apply(callback);
                        }
                    }
                });
            }
        }
    }
}]);

工作实例