0

有没有机会我可以将一个bs-popover元素编译成div我在代码中用 angularjs 创建的元素,然后将它添加到 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 中添加这些属性,但事实是我的逻辑完全不同,我必须在代码中创建它。有什么想法吗?

4

1 回答 1

1

就此而言,您可以使用该$compile服务重新编译模板的该部分,它将解释您添加的属性,将bs-popover指令行为添加到新元素。

首先,将服务注入$compile到您的组件中。其次,在将元素添加到 dom 之前调用 compile 函数,最后,您可以将其附加到目标容器中。

const menu = document.createElement('div');

// ...

menu.setAttribute('bs-popover',null);    

$compile(rightSideContainer)(scope);

rightSideContainer.appendChild(menu);
于 2018-08-27T20:30:30.213 回答