如何将ng-repeat迭代器传递给ng-click

时间:2016-05-24 13:44:48

标签: angularjs

我在AngularJS中创建了这个片段,在我的网页上显示了一个分页栏。对象$ scope.PagesOnBar包含一个数字数组,如1,2,3,它们出现在分页栏上。问题出在我的ng-click属性中;值{{x}}作为文字传递 - x不替换为1,2,3。如何重写这个以便将数值传递给BarClick函数?我尝试在ng-click之前输入ng-repeat,但这也没有用。我也尝试删除花括号 - 结果相同。

    <ul class="PaginationBar">
    <li class="FloatLeft" ng-click="BarClick('<<');">&lt;&lt;</li>
    <li class="FloatLeft" ng-click="BarClick('<');">&lt;</li>
    <li class="FloatLeft" ng-click="BarClick('{{x}}');" ng-repeat="x in PagesOnBar">{{x}}</li>
    <li class="FloatLeft" ng-click="BarClick('>');">&gt;</li>
    <li class="FloatLeft" ng-click="BarClick('>>');">&gt;&gt;</li>
</ul>

2 个答案:

答案 0 :(得分:2)

<ul class="PaginationBar">
    <li class="FloatLeft" ng-click="BarClick('<<');">&lt;&lt;</li>
    <li class="FloatLeft" ng-click="BarClick('<');">&lt;</li>
    <li class="FloatLeft" ng-repeat="x in PagesOnBar" ng-click="BarClick(x)">{{x}}</li>
    <li class="FloatLeft" ng-click="BarClick('>');">&gt;</li>
    <li class="FloatLeft" ng-click="BarClick('>>');">&gt;&gt;</li>
</ul>

大多数ng指令不需要花括号({{ }})来理解你指的是某种表达式或变量。

此外,这可能只是我的偏好,但在尝试引用迭代变量之前,我倾向于声明ng-repeat循环。可能Angular仍然会理解它,但至少在阅读时,首先声明它更有意义。

答案 1 :(得分:0)

如果你不想要文字,请不要在'中包含x ...只需写x