我是否有可能将我在代码中用angularjs创建的bs-popover
元素编译成div
,然后将其添加到DOM中,以便我的弹出窗口起作用?
menu.setAttribute('bs-popover',null);
因此,基本上我希望将此bs-popover
编译到以此方式创建的菜单元素中
const menu = document.createElement('div');
menu.className += 'layout-row layout-align-center-center containerTrigger';
menu.setAttribute("id", "openMenuTrigger");
menu.setAttribute("data-content", "null");
menu.setAttribute("data-template-url", "app/main/rgc/project/components/project-details/general-info/status-menu.html");
menu.setAttribute("data-animation", "am-flip-x");
menu.setAttribute("data-auto-close", "1");
menu.setAttribute('bs-popover',null);
rightSideContainer.appendChild(menu);
我可以在HTML中添加这些属性,但事实是我的逻辑完全不同,我必须在代码中创建它。有什么想法吗?
答案 0 :(得分:1)
为此,您可以使用$compile
服务重新编译模板的该部分,它将解释您添加的属性,并将bs-popover
指令行为添加到新元素中。
首先,将$compile
服务注入到您的组件中。其次,在将元素添加到dom中之前调用compile函数,最后,可以将其附加到目标容器中。
const menu = document.createElement('div');
// ...
menu.setAttribute('bs-popover',null);
$compile(rightSideContainer)(scope);
rightSideContainer.appendChild(menu);