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

如何使用HTML内容创建AngularJS UI引导程序弹出窗口?

洪伟彦
2023-03-14
问题内容

我想创建一个带有预标记的引导弹出窗口,该预标记包含已预定义的JSON对象。天真的实现,

<span popover='<pre>{[ some_obj | json:"  " ]}</pre>'
      popover-trigger='mouseenter'>

在将内容插入弹出窗口之前先对其进行转义。用HTML内容指定弹出框的最佳方法是什么?


问题答案:

更新

使用popover-template指令如果您使用的angular-ui版本等于或大于0.13.0,则最好的选择是使用popover-template指令。使用方法如下:

<button popover-template="'popover.html'">My HTML popover</button>

<script type="text/ng-template" id="popover.html">
    <div>
        Popover content
    </div>
</script>

注意:不要忘记中模板名称的引号popover-template=“‘popover.html’“。

请参阅演示插件

附带说明,可以将弹出框模板外部化到专用的html文件中,而不用在<script type="text/ng-template>上面的元素中声明它。

参见第二个演示插件

原版的:

从角度开始1.2+ ng-bind-html-unsafe已被删除。您应该使用$
sce
服务。参考。

这是用于创建可信html的过滤器。

MyApp.filter('unsafe', ['$sce', function ($sce) {
    return function (val) {
        return $sce.trustAsHtml(val);
    };
}]);

这是使用此过滤器的覆盖的 Angular Bootstrap 0.11.2 模板

// update popover template for binding unsafe html
angular.module("template/popover/popover.html", []).run(["$templateCache", function ($templateCache) {
    $templateCache.put("template/popover/popover.html",
      "<div class=\"popover {{placement}}\" ng-class=\"{ in: isOpen(), fade: animation() }\">\n" +
      "  <div class=\"arrow\"></div>\n" +
      "\n" +
      "  <div class=\"popover-inner\">\n" +
      "      <h3 class=\"popover-title\" ng-bind-html=\"title | unsafe\" ng-show=\"title\"></h3>\n" +
      "      <div class=\"popover-content\"ng-bind-html=\"content | unsafe\"></div>\n" +
      "  </div>\n" +
      "</div>\n" +
      "");
}]);

编辑:这是一个Plunker实现。

编辑2:由于此答案不断受到关注,我将尽我所能保持更新。作为参考,这是angular-ui引导回购中的模板。如果更改,覆盖模板将要求进行匹配的更新,并添加ng-bind-html=\"title | unsafe\"ng-bind- html=\"content | unsafe\"属性,以继续工作。

有关更新的对话,请在此处查看问题。



 类似资料:
  • 我看到了另一个这样的问题,但是答案对我不起作用,我不知道为什么。为什么超过50px时我的popover内容不滚动?还有一个附带问题:在我的变量a中,我的换行符在弹出窗口中不起作用。有人知道为什么吗?

  • E/AndroidRuntime:致命异常:main process:com.luteraa.luteraaesports,pid:6355 java.lang.nullpointerException:试图在com.luteraa.luteraaesports.bgmicategoryAdapter.OpenDialog(bgmicategoryAdapter.java.access$000(b

  • 我想在JavaFX应用程序中创建一个弹出窗口。给我一些想法。 当我点击检查按钮时,它会打开弹出窗口。怎么做?

  • 我正在使用Windows 7和10。我想知道如何在Perl6中创建一个弹出窗口来向用户提供信息?类似Linux的发送通知或Windows Pro msg(没有网络) 非常感谢,-T

  • 我刚开始使用android studio,ive用一个我试图构建的应用程序进入了这个领域。 这是我到目前为止的编码:

  • 大多数情况下,我在寻找一个不用重写引导的解决方案。 附加的jsfiddle。第二个输入选项。没有经常使用jsfiddle,所以不知道,但尝试增加输出框的大小来查看结果,在更小的屏幕上甚至看不到。http://jsfiddle.net/rqx8t/