无法在智能表tbody中获取当前页面

时间:2018-01-23 14:44:09

标签: angularjs smart-table

我的智能表看起来像:

          <table st-safe-src="input.inputBuckets" st-table="inputBuckets"
                 class="table">
            <thead>
            <tr>
              <th>Timestamp</th>
              <th ng-repeat="row in input.inputSeriesPrinted">{{row}}</th>
            </tr>
            </thead>
            <tbody>
            <tr ng-repeat="row in inputBuckets track by $index">
              <td>{{row.key | date:'yyyy-MM-dd HH:mm:ss'}}</td>
             //current page is undefined
              <td ng-repeat="item in input.inputData" >{{item[$parent.$index] + (currentPage-1)*10]}}</td>
            </tr>
            </tbody>
            <tfoot>
            <tr>
              <td colspan="10" class="text-center">
                <div st-pagination="" st-items-by-page="10" st-displayed-pages="7"></div>
              </td>
            </tr>
            </tfoot>
          </table>

所以,因为我在ng-repeat中使用ng-repeat并使用父索引,所以我需要一个新的项目集的当前页面。如果没有(仅item[$parent.$index]),则为每个页面显示相同的数据。 currentPage未定义。任何建议如何在我的tbody中获取currentPage?

编辑:Codepen example.这是我的ng-repeat和内部ng-repeat的打印索引问题的例子。

1 个答案:

答案 0 :(得分:1)

您的问题不完整,因为您没有向我们展示您的控制器方面。所以,从我的理解是下面的答案。

  

CurrentPage未定义

您尚未在控制器中定义它,或者您的数据值未定义。

您可以定义索引的名称并使用它,就像这样。

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

function MyCtrl($scope) {
  $scope.lines = [{
    text: 'Page 1'
  }, {
    text: 'Page 2'
  }];
  $scope.someData = [{
    text: 'Some Data 1'
  }, {
    text: 'some data 2'
  }];
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<html>
<body ng-app="myApp">
<div ng-controller="MyCtrl">
  <div ng-repeat="(pageIndex, line) in lines">
    <div class="preview">{{line.text}} Page Index : {{pageIndex}}</div>
    <br/>
    <div ng-repeat="(dataIndex, data) in someData">
        {{someData[pageIndex]}}
        Parent Index : {{pageIndex}}
        childIndex : {{dataIndex}}
    </div>
  </div>
</div>
</body>
</html>