Javascript 是否可以使用AngularJS在ng click中添加ng repeat$索引值?
在我的HTML中,我有一个下拉列表,我使用了ng repeat。 单击这些元素时,每个元素都需要有自己的函数,因此我使用的是$index。以下是我的部分代码:Javascript 是否可以使用AngularJS在ng click中添加ng repeat$索引值?,javascript,angularjs,angularjs-ng-click,Javascript,Angularjs,Angularjs Ng Click,在我的HTML中,我有一个下拉列表,我使用了ng repeat。 单击这些元素时,每个元素都需要有自己的函数,因此我使用的是$index。以下是我的部分代码: <div class="dropdown-menu status-menu" aria-labelledby="dropdownMenuButton"> <span class="dropdown-item active" ng-click="allItems()">All Items</span>
<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>
但当单击它们时,它们不工作,控制台会抛出以下错误:
错误:[$parse:syntax]语法错误:标记“{”是从[{{$index}}()]开始的表达式[myFunction{{{$index}}}()]第11列的意外标记
你知道我该怎么做,或者有没有更好的方法吗?提前感谢不要在AngularJS表达式中使用插值(
{{}
),而是使用属性访问器:
<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"
̶n̶g̶-̶c̶l̶i̶c̶k̶=̶"̶m̶y̶F̶u̶n̶c̶t̶i̶o̶n̶{̶{̶$̶i̶n̶d̶e̶x̶}̶}̶(̶)̶"̶
ng-click="this['myFunction'+$index]()">
{{x.name}}
</span>
</div>
所有项目
{{x.name}
对于AngularJS表达式,this
上下文绑定到$scope
有关详细信息,请参阅
- 您还可以通过一个函数通过索引来解决它:
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>
$scope.myFunction(index){
switch(index){
case 0:
///function 0
break;
case 1:
///function 1
break;
//etc
}
}
$scope.myFunction(index){
switch(index){
case 0:
///function 0
break;
case 1:
///function 1
break;
//etc
}
}