javascript - AngularJS + Bootstrap - 将 $compiled HTML 注入(inject) popover

标签 javascript angularjs twitter-bootstrap twitter-bootstrap-3 popover

我正在尝试为一系列元素的弹出窗口构建动态内容。

使用这个指令:

.directive('popover', function($compile){
    return {
        link: function(scope, element, attrs) {
            // define popover for this element
            $(element).popover({
                html: true,
                placement: "top",
                // grab popover content from the next element
                content: $(element).siblings(".pop-content").html()
            });
        }
    }
});

弹出框的内容包含弹出框的 .pop-content 兄弟的 HTML 内容:

<div ng-repeat="o in os">
    <a popover href="javascript:;">
        show popover
    </a>

    <div ng-hide="true" class="pop-content">
        {{ 3+4 }}
    </div>
</div>

不幸的是,弹出窗口的内容将保留为未编译的原始 html,而不是呈现的 Angular 模板:

enter image description here

如何将完全呈现的 Angular 模板(将使用 ng-click 和 ng-hide 等指令)注入(inject)弹出框? 我尝试将 $compile( (element).siblings(".pop-content").html() )(scope) 调用为 content 但结果是完全空的弹出窗口。

最佳答案

使用 $compile,你走在正确的轨道上;但是,您需要传递 $compile .contents() 而不是 .html():

// grab popover content from the next element
content: $compile( $(element).siblings(".pop-content").contents() )(scope)

JSFiddle

关于javascript - AngularJS + Bootstrap - 将 $compiled HTML 注入(inject) popover,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26576327/

相关文章:

JavaScript 在鼠标单击时绘制一个圆圈 - 坐标不匹配

javascript - 谷歌地图添加监听器问题

javascript - Angularjs 触发国家状态依赖

javascript - 如何在没有Google SDK的情况下使用key脚本在angularjs中使用谷歌地图

jquery - 使用 Bootstrap ,如何正确清除列?

javascript - 使用弹出式键盘进行 Tab 键需要选择和取消选择文本框

javascript - php post 无法使用 header 和 ajax 工作

javascript - Angular 中使用的$$(双美元符号)是什么?

jquery - 带有 div 的内联列表无法使用 Twitter Bootstrap 正确显示

css - 如何摆脱 Bootstrap 标签页中的两个栏