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);