【问题标题】:How to show a popup using an AngularJS custom directive如何使用 AngularJS 自定义指令显示弹出窗口
【发布时间】:2018-03-24 15:06:22
【问题描述】:

我想使用指令显示一个弹出窗口

HTML 代码:

<td hover-popup>Hi there</td>

hover-popup 是我的指令。

我试过了

link: function (scope, elm, attr, ngModel) {
    elm.attr('tooltip', 'abc');
    $compile(elm)($rootScope);
}

link: function (scope, el, attr, ngModel) {
    el.attr('tooltip', 'abc');
    var fn = $compile(el);
        return function(scope){
            fn(scope);
    }
}

在悬停“您好”时,我希望显示弹出窗口。 以上两个代码都不起作用。 谢谢

【问题讨论】:

标签: jquery html angularjs angularjs-directive jquery-ui-tooltip


【解决方案1】:

ng-transclude 可以解决问题

angular.module('transcludeExample', [])
 .directive('pane', function(){
      return {
        restrict: 'A',
        transclude: true,
        scope: { title:'@' },
        template: '<div style="border: 1px solid black;">' +
                    '<div ng-if="showTooltip" style="background-color: gray">tooltip</div>' +
                    '<ng-transclude></ng-transclude>' +
                  '</div>',
        link: function(scope, element) {
          element.bind('mouseenter', function(e) {
            scope.$apply(function() {
              scope.showTooltip = true;  
            })
          });
          element.bind('mouseleave', function(e) {
            scope.$apply(function() {
              scope.showTooltip = false;  
            })
          });

        },
      };
  });

codepen demo

【讨论】:

  • 嗨,谢谢,但我不想要额外的 div,我想在同一个 div 中插入工具提示。
  • 您将需要 3 个“框”,一个用于元素(在您的示例中为 ),一个用于工具提示(div/span...随便),以及它们的包装器.你怎么称呼什么并不重要
猜你喜欢
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多