javascript - 是否可以使用 AngularJS 在 ng-click 中添加 ng-repeat $index 值?

标签 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>
   <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/

相关文章:

javascript - Javascript 对象属性是否按顺序分配?

javascript - 无法在 Nodejs 中执行 FileUpload 程序

javascript - 如何在 TypeScript 中正确引用模块?

javascript - AngularJS 如何在指令链接中使用 $scope.$broadcast

javascript - 使用 ng-click 将动态值传递给 Angular 函数

javascript - Angular Js ng-click 没有触发?

javascript - 单击按钮时在两个功能之间切换。

javascript - 如何在没有 eval 的情况下编写这段 JavaScript 代码?

angularjs - 在 Angular 加载之前测试显示内容的 Protractor 方法是什么

angularjs - 在angularjs中的一定数量的字符后面放置省略号(...)