- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建侧菜单栏,它是从 json 以编程方式生成的。
我已经编码了两个级别的项目,但我在 html 中硬编码了两个级别的 ulLi 项目。但我不想对菜单项的级别进行硬编码。
我尝试过以下代码。
HTML
<ul class="sidebar-menu sidebar-nav" ng-repeat="m in modulos">
<li class="treeview" ng-repeat="(itemIndex, item) in modulos">
<a ng-click="showSubmenu(itemIndex)">
<i class="fa fa-table"></i> <span>{{item.module}}</span>
</a>
<ul class="sub-nav" ng-show="isShowing(itemIndex)">
<li ng-repeat="sub_element in m.submodule">
<a href="{{sub_element.url}}">{{sub_element.res}}</a>
</li>
</ul>
</li>
</ul>
js
$scope.modulos = [{
"module":"Admin System ",
"adm_modulo_id":1,
"submodule": [{
"res":"Angular","url":"#",
"submodule":[{
"res":"Angular",
"url":"#/admin/1"
},{
"res":"Linux",
"url":"#/admin/2"
},{
"res":"Server",
"url":"#/admin/3"
}]
},{
"res":"Linux",
"url":"#/admin/2"
},{
"res":"Server",
"url":"#/admin/3"
}]
}];
这里我编码了两个级别的项目。但这是一个变量。有些项目有 5 个级别,另一些项目有 2 个级别。
因此基于子模块,我需要编写一个逻辑。
最佳答案
像其他所有“树”问题一样,您可以通过递归来完成此任务。 html 中的 Angular 递归是通过 html 中的模板完成的,例如:
<script type="text/ng-template" id="list_node.html">
........
<ul>
<li ng-repeat="node in node.children" ng-include="list_node.html"></li>
</ul>
</script>
在上面的截图中的点所在的位置,您将定义要显示的内容(节点项上的哪些数据)。示例:<p>{{node.name}}</p>
然后在您的 ng-repeat 中您只需包含模板即可。示例:
<ul class="node-indented slide">
<li ng-repeat="node in node.children" ng-include="'list_node.html'"></li>
</ul>
根据您的用例调整此示例,它将起作用。
关于javascript - 如何在angularjs中以编程方式生成多级菜单项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885304/
我正在创建一个项目来使用评级系统评估不同的产品,但由于我是新手,所以我有几个问题。 首先,为了实现这个目标,我创建了一个 ListView ,它允许我使用从该数据库获取的 JSON 代码显示 MySQ
在对学校的大型作业进行故障排除时,我发现了一个错误,我将单个项目列表(包含一个项目的堆栈)视为单个项目。我解决了我的问题,但是在进一步的测试中我注意到一些奇怪的事情: 48 ?- 1 is [1].
嘿,我正在修改我在 Internet 上找到的示例应用程序。 (学习2破解)我想在我的 ReclycerView 中获取单行的 ID。这是代码。 主要 private void initVie
我在一个项目中使用 ASP.NET MVC SiteMap 提供程序,它运行良好。但是,我很难弄清楚如何隐藏菜单项。我想在全局导航中隐藏的菜单项是我的“站点地图”页面。现在我知道有一个东西叫做 Vis
我是一名优秀的程序员,十分优秀!