ng-repeat如何从脚本端获取选定的数据索引

时间:2016-06-14 09:35:55

标签: javascript angularjs

我想在脚本端获取所选数据的索引位置

<table ng-table="testTable">
        <tbody>
            <tr ng-repeat="data in $data">
                <td data-title="data"> 
                    {{data.name}} 
                < /td>
                <td data - title="'Actions'">
                    <button ng-click="test(data)">Add</button>
                </td>
            </tr>
        </tbody>
    </table>

类似的东西

 $scope.test = function(data){
        var x = data.index;
    }

我知道html我能做到这一点

<button ng-click="test(data,$index)">Add</button>

并将$ index传递给脚本端,但我确定还有其他方法。

可以在这里得到一些帮助, 感谢。

3 个答案:

答案 0 :(得分:0)

可能是:

  <tr ng-repeat="data in $data" ng-init="data.index = $index;">
      <td data-title="data"> 
          {{data.name}} 
      </td>
      <td data - title="'Actions'">
           <button ng-click="test(data)">Add</button>
      </td>
  </tr>

编辑:参见工作示例: http://plnkr.co/edit/87PT7pvIKZNe1DyQ8uUu?p=preview

答案 1 :(得分:0)

你必须在ng-repeat

之前初始化
<table ng-table="testTable" ng-init="$data.index = {}">
            <tbody>
                <tr ng-repeat="data in $data">
                    <td data-title="data"> 
                        {{data.name}} 
                    < /td>
                    <td data - title="'Actions'" ng-init="data.index.id= $index">
                        <button ng-click="test(data)">Add</button>
                    </td>
                </tr>
            </tbody>
        </table>

$scope.test = function(data){
        var x = data.index.id;
    }

答案 2 :(得分:0)

请考虑以下简单示例。

<div ng-app="myApp" ng-controller="MainCtrl">
<ul>
    <li ng-repeat="page in pages ">
        <a  ng-click="test($index)">{{ $index }}</a>
    </li>
</ul>