Ng-repeatで追加された特定の要素の$ index値をjavascript関数に渡す必要があります。私のコードサンプル:
<tr ng-repeat="cells in CouponsList.CellPhones">
<td><button ng-click="doStuff($index+1)">{{cells.localVendorAddress}}</button></td>
現在、いくつかのボタンを追加しています。特定のボタンが押されたときに、その特定の$ indexをdoStuff($ index)関数に送信する必要があります。何か案が?
こちらをご覧ください: 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'}];
});
これが例です。
そこにあるものは問題ないように見えますが、doStuffの関数定義に何かが欠けている可能性があります。 $ scopeで次のように定義する必要があります。
$scope.doStuff = function(idx){
alert(idx);
};
Ng-clickを使用しているときは、呼び出された関数がコントローラーのスコープで宣言されていることを確認する必要があります。
したがって、関数名がdoStuff(index)の場合、これはコードのどこかに次のように定義されているはずです(以下はモジュール名とコントローラー名についての仮定です)。
var app = angular.module("MyModule", []);
app.controller("MyController", function($scope){
$scope.doStuff = function(index){
...
}
}