在角度js中,我试图通过控制器构建我的网站导航。在导航菜单中,某些菜单有子菜单,有些菜单没有。这是我的导航控制器的简化版本。
function NavCtrl($scope) {
$scope.menus = [
{"name": "Destinations",
"url": "/#/destinations",
"submenu":[
{
"name":"America",
"url":"#"
},
{
"name":"Europe",
"url":"#"
}
]},
{"name": "Friend Finder",
"url": "/#/friend-finder"},
{"name": "Blog",
"url": "/#/blog"},
];
}
这是我用来输出它的代码:
<ul class="nav" ng-controller="NavCtrl">
<li ng-repeat="menu in menus">
<a href="{{menu.url}}">
{{menu.name}}
</a>
<ul>
<li ng-repeat="submenu in menu.submenu">
<a href="{{submenu.url}}">
{{submenu.name}}
</a>
</li>
</ul>
</li>
</ul>
如果菜单没有子菜单,我有没有输出内部ul?
答案 0 :(得分:3)
我还没有对它进行过测试,但我相信你可以通过添加类似ul
之类的东西来展示你的menu.submenu
,如果没有data-ng-show="menu.submenu"
(这就是你想要的吗?)到你的内心ul
。
像这样:
<ul class="nav" ng-controller="NavCtrl">
<li ng-repeat="menu in menus">
<a href="{{menu.url}}">
{{menu.name}}
</a>
<ul data-ng-show="menu.submenu">
<li ng-repeat="submenu in menu.submenu">
<a href="{{submenu.url}}">
{{submenu.name}}
</a>
</li>
</ul>
</li>
</ul>
也许你需要一个更好的测试,或者将submenu
设置为false,因为我不确定空数组或对象是否会像我期望的那样运行,但我很确定这是一般的想法。