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

前端之家收集整理的这篇文章主要介绍了如何使用编译模板创建AngularJS工具提示指令?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在搜索互联网,并没有找到答案.我的问题很简单,我希望在我的标记中有这样的东西:
  1. <div my-tooltip-template="'mytt.tpl.html'" my-tooltip-scope="myDataItem">Some text...</div>

编辑:其中myDataItem是一个范围变量,它包含我的数据对象,并且模板可能如下所示:

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

我希望使用包含myDataItem作为dataItem的范围编译该模板,并将其显示为工具提示.通过尝试使用ui-bootstrap工具提示模块我可以看出,将html注入工具提示方法是使用指令tooltip-html-unsafe但是注入的html不会被编译,即不会评估角度表达式,指令不扩展等.

我该如何为此创建指令?我想要一个精益求精的结果,我不想要包含jQuery或任何其他库,只需要AngularJS和ui-bootstrap.

非常感谢!

以下是如何根据您的要求创建工具提示的蓝图(或使用ui-bootstrap的工具提示修改/包含此工具提示).
  1. app.directive("myTooltipTemplate",function($compile){
  2. var contentContainer;
  3. return {
  4. restrict: "A",scope: {
  5. myTooltipScope: "="
  6. },link: function(scope,element,attrs,ctrl,linker){
  7. var templateUrl = attrs.myTooltipTemplate;
  8.  
  9. element.append("<div ng-include='\"" + templateUrl + "\"'></div>");
  10. var toolTipScope = scope.$new(true);
  11. angular.extend(toolTipScope,scope.myTooltipScope);
  12. $compile(element.contents())(toolTipScope);
  13. }
  14. };
  15.  
  16. });

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

Plunker

用更接近工具提示的行为改变了plunker;

猜你在找的Angularjs相关文章