directive例子1

(function() {
    'use strict';

    angular.module('app.widgets')
        .directive('confirm', ['confirm2', 'toastr', function(confirm, toastr) {
            return {
                restrict: "A",
                scope: {
                    ngClick: '&',
                    confirm: '@',
                    confirmIf: "=",
                    confirmOptions: "=",
                    confirmContext: '=',
                    confirmIfFalse: "&",
                    confirmIfFalseMessage: '@'
                },
                link: function(scope, ele, attrs) {
                    ele.unbind("click").bind('click', function(event) {
                        event.preventDefault();

                        var config = {};
                        config.content = scope.confirm;
                        config = angular.extend(config, scope.confirmOptions);

                        var fn = scope.ngClick;
                        var context = scope.confirmContext;

                        if (angular.isUndefined(scope.confirmIf) || scope.confirmIf) {
                            confirm(config, context)
                                .ok(function() {
                                    fn();
                                })
                        } else {
                            if (attrs.confirmIfFalse) {
                                var ifFn = scope.confirmIfFalse;
                                if (ifFn) {
                                    scope.$apply(ifFn);
                                }
                            } else if (scope.confirmIfFalseMessage) {
                                toastr.warning(scope.confirmIfFalseMessage);
                            }
                        }
                    })
                }
            };
        }])
})();
原文地址:https://www.cnblogs.com/jzm17173/p/6550276.html