【发布时间】:2017-05-04 02:22:13
【问题描述】:
我正在尝试编写一个 ng-repeat,其中的每个元素都有一个附加的下拉菜单。在该下拉菜单中,我希望具有作用于该单个元素的功能,为此我需要访问该元素的索引。这是我的html:
<div class="user" ng-repeat = "item in tParticipants">
<div uib-dropdown>
<button class="free-agent-dropdown" uib-dropdown-toggle>
<i class="fa fa-ellipsis-v" aria-hidden="true"></i>
</button>
<ul class="dropdown-menu" uib-dropdown-menu>
<li role="menuitem" ng-click="removeFromList($child.$index)">Remove From List</li>
</ul>
</div>
<label>Checked In</label>
</div>
问题是,下拉菜单显然无法访问 $index。当我运行它时,我变得不确定。我也尝试过 $parent.$index 并且发生了同样的事情。任何 Angular 专业人士都知道我可以做些什么来获取该索引?先感谢您!
【问题讨论】:
-
首先,应该是
removeFromList($child,$index)(,而不是.) - 您也可以将item传递给该函数,因为如果您将对结果进行排序,那么$index将对排序项的引用,而不是它在数组中的实际位置 -
你应该像这样在 removeFromList 方法中直接使用 $index :
<li role="menuitem" ng-click="removeFromList($index)">Remove From List</li> -
感谢您的快速回复!我不认为只是将整个项目传递给函数。我将其更改为:
<li role="menuitem" ng-click="removeFromTournament(tParticipants.indexOf(item))">Remove From Tournament</li>并且代码有效。感谢您的帮助!
标签: javascript html angularjs angular-ui-bootstrap