在我的 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...
但是当点击它们时,它们不起作用,并且控制台抛出此错误:
错误:[$parse:syntax] 语法错误:标记“{”是表达式 [myFunction{{$index}}()] 开始于 [{{$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>
使用 AngularJS 表达式,this
上下文绑定到 $scope。
有关更多信息,请参阅
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句