在我的 HTML 中,我有一个使用 ng-repeat 制作的下拉列表。 单击时,每个元素都需要有自己的功能,因此我使用 $index。 这是我的代码的一部分:
<div class="dropdown-menu status-menu" aria-labelledby="dropdownMenuButton">
<span class="dropdown-item active" ng-click="allItems()">All Items</span>
<span ng-repeat="x in itemsArray" class="dropdown-item"
ng-click="myFunction{{$index}}()">{{x.name}}</span>
</div>
当我检查浏览器中的元素时,它实际上显示如下项目:
ng-click="myFunction0()", ng-click="myFunction1()", ng-click="myFunction2()", etc...
但是当点击它们时,它们不起作用,控制台会抛出此错误:
Error: [$parse:syntax] Syntax Error: Token '{' is an unexpected token at column 11 of the expression [myFunction{{$index}}()] starting at [{{$index}}()]
知道如何才能完成这项工作,或者是否有更好的方法?
提前致谢
最佳答案
您也可以通过在一个函数中传递索引来解决它:
HTML:
<div class="dropdown-menu status-menu" aria-labelledby="dropdownMenuButton">
<span class="dropdown-item active" ng-click="allItems()">All Items</span>
<span ng-repeat="x in itemsArray" class="dropdown-item"
ng-click="myFunction($index)">{{x.name}}</span>
</div>
Controller :
$scope.myFunction(index){
switch(index){
case 0:
///function 0
break;
case 1:
///function 1
break;
//etc
}
}
关于javascript - 是否可以使用 AngularJS 在 ng-click 中添加 ng-repeat $index 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57828494/