我想在带有angularjs的指令中创建一个上下文菜单,我可以创建一个菜单但不能用子菜单创建。我的意思是,在悬停时打开子菜单。
示例小提琴:sample contextmenu
我的控制器:
$scope.menuOptions = [
['New User', function () {
console.log("New User");
}],
['Delete', function () {
console.log("Delete");
}]
];
这个小提琴非常好,只是我想在这个上下文菜单中添加子菜单。如何根据此示例创建子菜单?
答案 0 :(得分:5)
你在这里遇到的第一个问题是,你正在使用Bootstrap和Bootstrap不支持Submenus(不再)开箱即用。但是you can extend the functionality by adding some style sheets。第二个问题是你需要扩展renderContextMenu
函数以支持嵌套数组,目前它只支持简单数组。
这是我尝试解决您的问题:JSFIDDLE
仍然有点hacky但会工作。这是我改变的:
menuOptions
,添加了一个新的示例Item,其中没有第二个函数,但是另一个项目数组angular.forEach...
方法的功能提取到新方法buildMenuItem
,因为我需要将其重新用于处理子项目else if(item[1] instanceof Array)
检查更新了例程以检测子菜单,这是添加子菜单的位置,使用递归添加子菜单项(您基本上可以有多个级别,而不仅仅是一个)< / LI>
答案 1 :(得分:0)
有一个类似的问题,Bootstrap Context Menu,您也可以使用此AngularJS Dropdown Multiselect