Angularjs 从Angular Treeview指令调用引导模式时未发生任何事件

Angularjs 从Angular Treeview指令调用引导模式时未发生任何事件,angularjs,twitter-bootstrap,treeview,Angularjs,Twitter Bootstrap,Treeview,我正在使用它在我的网站中构建层次结构。我已经为层次结构中的每个节点添加了一个引导下拉列表,当用户单击节点标签时,它会显示出来。 下拉列表中显示的菜单项因节点类型而异。所有这些我都要去工作了 现在,当用户想要添加节点时,应该打开一个引导模式供用户输入。这就是我被卡住的地方,模态根本没有被调用。我已经在指令中使用$(“.dropdown>ul.dropdown menu”).html($compile(appendThis)(scope))实现了函数,但如果我想打开指令模板中定义的模型,它将不起作用

我正在使用它在我的网站中构建层次结构。我已经为层次结构中的每个节点添加了一个引导下拉列表,当用户单击节点标签时,它会显示出来。 下拉列表中显示的菜单项因节点类型而异。所有这些我都要去工作了

现在,当用户想要添加节点时,应该打开一个引导模式供用户输入。这就是我被卡住的地方,模态根本没有被调用。我已经在指令中使用
$(“.dropdown>ul.dropdown menu”).html($compile(appendThis)(scope))实现了函数,但如果我想打开指令模板中定义的模型,它将不起作用

我已经尝试了解决方案,但都不起作用

以下是指令模板的简化版本:

template =
'<div class="modal hide fade" id="addThisNode"">'+
    '<div class="modal-body">'+
            '<p>This Node Body</p>'+
    '</div>'+
'</div>'+

'<div class="modal hide fade" id="addOtherNode"">'+
    '<div class="modal-body">'+
            '<p>Other Node Body</p>'+
    '</div>'+
'</div>'+
'<ul>' +
       '<li data-ng-repeat="node in ' + treeModel + '">' +
           '<i class="normal" '+
                   'data-ng-hide="node.' + nodeChildren + '.length">'+
       '</i> ' +
        // Call this funcion when
        // the node label is clicked
        '<span class="treenode {{node.' + nodeType + '}}" '+
              'id="{{node.' + nodeId + '}}"'+
              'data-ng-class="node.selected" '+
              'data-ng-click="' + treeId +
              '.selectNodeLabel(node)">'+
              '{{node.' + nodeLabel + '}}'+
        '</span>' +

        // bootstap dropdown menu
        '<div class="dropdown" data-ng-show="node.selected">'+
              '<a data-toggle="dropdown"><span class="caret"></span></a>'+
              '<ul class="dropdown-menu">'+
                    // list items get appended here
              '</ul>'+
        '</div>'+
    '</li>' +
'</ul>';
模板=
''+
''+
“其他节点体

”+ ''+ ''+ “
    ”+ “
  • ”+ ''+ ' ' + //调用此函数时 //单击节点标签 ''+ “{node.+nodeLabel+'}}”+ '' + //bootstap下拉菜单 ''+ “
  • ”; } else if(nodetype=='Other'){ 附录this='
  • '; } $(“.dropdown>ul.dropdown menu”).html($compile(appendThis)(scope)); };

抱歉,如果这让人困惑,我也很困惑。但是如果你有从指令内部调用modals的技巧,任何东西都会很感激。

在搜索了很多帖子后,我找到了答案。我把它贴在这里,以防它能帮助其他人

我稍微更改了模板的结构,但功能保持不变。实际的问题是在编译模板时。当我像这样编译它时,它工作了:

$(".dropdown > ul.dropdown-menu").html(appendThis);
$compile($(".dropdown > ul.dropdown-menu").contents())(scope);
$(".dropdown > ul.dropdown-menu").html(appendThis);
$compile($(".dropdown > ul.dropdown-menu").contents())(scope);