我正在尝试使用UI Bootstrap的uib-dropdown和ng-repeat填充下拉菜单,但只填充了数组中的最后一条记录。
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li ng-class="{active: isActive('/resources/')}" class="dropdown" uib-dropdown>
<a uib-dropdown-toggle class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">Resources <span class="caret"></span></a>
<ul ng-repeat="resource in TN.resourceList" class="dropdown-menu">
<li><a href="{{ resource.ResourceLink }}" target="_blank">{{ resource.ResourceText }}</a></li>
</ul>
</li>
</ul>
</div>
我已确认TN.resourceList
有3条记录。
如果我删除:class="dropdown-menu"
来自:<ul ng-repeat="resource in TN.resourceList" class="dropdown-menu">
然后显示所有记录,但不再显示为下拉菜单。
我还尝试将uib-dropdown-menu
指令添加到<ul>
并添加ng-repeat
以及role
属性,如此答案所示:{{3} }
但它没有效果。
答案 0 :(得分:2)
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li ng-class="{active: isActive('/resources/')}" class="dropdown" uib-dropdown>
<a uib-dropdown-toggle class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">Resources <span class="caret"></span></a>
<ul class="dropdown-menu">
<li ng-repeat="resource in TN.resourceList"><a href="{{ resource.ResourceLink }}" target="_blank">{{ resource.ResourceText }}</a></li>
</ul>
</li>
</ul>
</div>
&#13;
注意li
上的ng-repeat而不是ul
dom元素(ng-repeat重复它添加到的元素和它的childeren)。
答案 1 :(得分:2)
您正在重复dropdown-menu
本身。您应该有一个dropdown-menu
并重复li
:
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li ng-class="{active: isActive('/resources/')}" class="dropdown" uib-dropdown>
<a uib-dropdown-toggle class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">Resources <span class="caret"></span></a>
<ul class="dropdown-menu">
<li ng-repeat="resource in TN.resourceList"><a href="{{ resource.ResourceLink }}" target="_blank">{{ resource.ResourceText }}</a></li>
</ul>
</li>
</ul>
</div>
&#13;
答案 2 :(得分:0)
最简单的答案是考虑将ng-repeat本身视为一个循环。在普通的html中,你不希望有多个列表或'ul'标签吗?您可能需要一个包含多个条目或“li”标签的列表。
将上面的答案视为直接答案,但实际上,您应该能够查看代码并确定要重复列表条目而不是列表本身。