angularjs 自定义指令弹窗

(function() {
  'use strict';

  angular.module('frontierApp')
    .directive('confirmPopup', ['$timeout', ConfirmPopupDirective])
    .directive('messageTips', ['$timeout', '$rootScope', MessageTipsDirective]);

  function ConfirmPopupDirective($timeout) {
    var directive = {
      restrict: 'A',
      scope: {
        confirmPopup: '&',
        confirmTitle: '=',
        confirmContent: '=',
      },
      link: link,
      transclude: true,
      template: '<div class="trans-clude" ng-transclude ng-click="show()"></div>' +
        '<div class="modal fade confirm-modal">' +
        '<div class="modal-dialog">' +
        '<div class="modal-content">' +
        '<div class="modal-header">' +
        '<span class="close ES3iconfont ES3icon-icon-closs" ng-click="close()"></span>' +
        '<h4 class="modal-title" ng-bind="confirmTitle"></h4>' +
        '</div>' +
        '<div class="modal-body"><i class="iconfont icon-warning"></i>' +
        '<p ng-bind="confirmContent"></p>' +
        '</div>' +
        '<div class="modal-footer">' +
        '<button class="button-cancel" ng-click="close()">取消</button>' +
        '<button class="button-confirm" ng-click="confirm()">确定</button>' +
        '</div>' +
        '</div>' +
        '</div>' +
        '</div>'
    };

    return directive;

    function link(scope, element, attrs) {

      scope.show = function() {
        element.find('.modal').modal();
      };

      scope.close = function() {
        element.find('.modal').modal('hide');
      };

      scope.confirm = function() {
        element.find('.modal').modal('hide');
        $timeout(function() {
          scope.confirmPopup();
        }, 500);
      };
    }
  }

  function MessageTipsDirective($timeout, $rootScope) {

    var directive = {
      restrict: 'EA',
      link: link,
      replace: true,
      template: '<div class="message-tips"></div>'
    };

    return directive;

    function link(scope, element, attrs) {

      //level: success,error
      $rootScope.showMessage = function(title,message, level, delay) {
        var tip = angular.element('<div class="alert message-tip" >\
          <div class="message-tip-header">'+title+'\
          <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span></button>\
          </div><div class="message-tip-body"><i class="iconfont icon-'+level+' iconSuccess"></i>' + message + '</div></div>').appendTo(element);
        tip.addClass('alert-' + level);

        if (delay) {
          $timeout(function() {
            tip.alert('close');
          }, delay * 1000);
        }

        element[0].addEventListener('click',function(e){
          if(e.target.nodeName === 'BUTTON'){
            if(message == '请选择要恢复的数据源'){
              // location = 
            }
          }
        })

      };
    }
  }

  angular.element('body').append('<div message-tips></div>');
})();

  

转载于:https://www.cnblogs.com/WaTa/p/8056613.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值