ng-repeat将索引值传递给函数

KBE*_*KBE 6 angularjs angularjs-ng-repeat angularjs-ng-click

我需要将一个特定元素的$ index值(用ng-repeat添加)传递给javascript函数.我的代码示例:

<tr ng-repeat="cells in CouponsList.CellPhones">
<td><button  ng-click="doStuff($index+1)">{{cells.localVendorAddress}}</button></td>
Run Code Online (Sandbox Code Playgroud)

现在我添加了几个按钮,当按下一个特定按钮时,我需要将它的特定$ index发送到doStuff($ index)函数.任何的想法?

syl*_*ter 8

请看这里:http://jsbin.com/yeweh/4/edit

<a href="" ng-repeat="s in students" ng-click="doit($index)">{{s.name}} - {{s.class}} </a>


var app = angular.module('app', []);



app.controller('firstCtrl', function($scope){

  $scope.doit= function(index){
    alert(index)

  }

  $scope.students = [
           {name: 'Aa_Student', class: 'A_Class'},
           {name: 'Ab_Student', class: 'A_Class'},
           {name: 'Ac_Student', class: 'B_Class'},
           {name: 'Ba_Student', class: 'B_Class'},
           {name: 'Bb_Student', class: 'C_Class'},
           {name: 'Bc_Student', class: 'C_Class'}];
});
Run Code Online (Sandbox Code Playgroud)


rch*_*dry 1

您需要确保在使用 ng-click 时,所调用的函数是在控制器的作用域上声明的。

因此,如果您的函数名称是 doStuff(index),您应该在代码中的某个位置看到它的定义(下面对您的模块和控制器名称进行假设):

var app = angular.module("MyModule", []);
app.controller("MyController", function($scope){

    $scope.doStuff = function(index){
        ... 
    }

}
Run Code Online (Sandbox Code Playgroud)