当前位置: 首页 > 面试题库 >

如何使用已编译的模板创建AngularJS工具提示指令?

邵兴庆
2023-03-14
问题内容

我经过漫长而艰苦的互联网搜索,没有找到直接的答案。我的问题很简单,我想在标记中添加以下内容:

<div my-tooltip-template="'mytt.tpl.html'" my-tooltip-scope="myDataItem">Some text...</div>

编辑: 如果myDataItem是包含我的数据对象的范围变化,并用模板,可能看起来像:

<h1>{{dataItem.title}}</h1>
<span>{{dataItem.description}}</span>

我想用范围myDataItemdataItem并显示为工具提示的范围编译该模板。据我对ui-bootstrap
tooltip模块的实验所知,将html注入工具提示的方法是使用指令,tooltip-html- unsafe但是注入的html不会被编译,即,不对角表达式求值,不对指令进行扩展等。

我该如何为此创建指令?我想要一个精简的结果,我不想包含jQuery或任何其他库,仅包括AngularJS和ui-bootstrap。

非常感谢!


问题答案:

这是如何根据需要创建工具提示的蓝图(或使用ui-bootstrap的工具提示进行修改/合并)。

app.directive("myTooltipTemplate", function($compile){
  var contentContainer;
  return {
    restrict: "A",
    scope: {
      myTooltipScope: "="
    },
    link: function(scope, element, attrs, ctrl, linker){
      var templateUrl = attrs.myTooltipTemplate;

      element.append("<div ng-include='\"" + templateUrl + "\"'></div>");
      var toolTipScope = scope.$new(true);
      angular.extend(toolTipScope, scope.myTooltipScope);
      $compile(element.contents())(toolTipScope);
    }
  };

});

当然,它没有任何实际的工具提示功能,例如弹出窗口,放置等…-它只是将已编译的模板附加到此指令适用的任何元素上。

柱塞

更换了具有更接近工具提示行为的弹头;



 类似资料:
  • 问题内容: 我想为工具提示创建一个自定义CSS类,该类将包裹长度超过25-30的字符串。通常这样长的文本不适合tootltip文本区域。 而且是否有使用[工具提示ui.bootstrap.tooltip)进行此操作?就像使用自定义CSS类来获取所需的输出。 这是简单的CSS工具提示 这是相同的代码片段: 问题答案: CSS解决方案 对于眼前的问题有一个非常简单的解决方案。我基本上添加的是以下CSS

  • 问题内容: 如何使用动态模板创建指令? 这就是我现在所拥有的,它可以正确显示标签。但是,我不确定如何在模板上附加其他HTML。或将2个模板合并为1个。 问题答案: 有类似的需求。做这份工作。(不完全确定这是否是“ THE”方法,仍然可以通过角度进行工作) http://jsbin.com/ebuhuv/7/edit-我的探索测试。 需要注意的一件事(以我的示例为例),我的要求之一是,一旦单击“保存

  • 关于 SING字形模板 字形是某种字体的字符的一种形式。字形模板是一个您可以自己创建的自定义字形,作为一个单独的文件存储。您可以创建字形模板以添加标准字符集中没有的字符、替换现有字符或作为现有字符的备用字形。例如,您可能需要添加别名、公司名称、公司徽标或不常使用的符号的字形。 创建和使用字形模板的工作流程 A. 在 Illustrator 中创建字形模板。 B. 将字形模板添加到 Adobe SI

  • 问题内容: 这是我的AngularJs指令。它原本希望在模板中显示div,但是在运行代码时却什么也没有显示。 这是HTML 这是AngularJS指令 这是演示 问题答案: 声明指令时,您使用了名称,但这是错误的。您应该使用,因为它将被转换为元素。 指令名称中的任何大写字母都将转换为连字符,因为元素中未使用大写字母。例如将翻译为。 正如其他人提到的,AngularJS使用以下标准化规则进行标准化:

  • 问题内容: 请帮助我,如何使AngularJS编译指令生成的代码? 您甚至可以在这里找到相同的代码,http://jsbin.com/obuqip/4/edit 的HTML Java脚本 问题答案: 这是一个既不使用编译功能也不使用链接功能的版本: 请注意,模板被包装在中,因为模板需要具有一个根元素。(如果没有,它将有两个 根元素。) 需要对HTML进行少许修改以进行插值: 小提琴。