Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 以编程方式将bs popover编译为div元素_Angularjs_Angularjs Directive_Angularjs Scope_Angular Compiler - Fatal编程技术网

Angularjs 以编程方式将bs popover编译为div元素

Angularjs 以编程方式将bs popover编译为div元素,angularjs,angularjs-directive,angularjs-scope,angular-compiler,Angularjs,Angularjs Directive,Angularjs Scope,Angular Compiler,我是否有可能将一个bs popover元素编译成div,然后将它添加到DOM中,这样我的popover就可以工作了 menu.setAttribute('bs-popover',null); 所以基本上我希望这个bs popover被编译到我的菜单元素中,它是这样创建的 const menu = document.createElement('div'); menu.className += 'layout-row layout-align-center-center containerTr

我是否有可能将一个
bs popover
元素编译成
div
,然后将它添加到DOM中,这样我的popover就可以工作了

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中添加这些属性,但事实是我的逻辑完全不同,我必须在代码中创建它。有什么想法吗

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

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

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

// ...

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

$compile(rightSideContainer)(scope);

rightSideContainer.appendChild(menu);