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);
                        }
                    }
                });
            }
        }
    }
}]);

工作例項