2016-09-09 12 views
2

このplunkには、ダイナミック列で生成されたngTableがあります。 1ページあたりの行数は5ですが、見ての通り、ページ数がない行数は8です。これは欠陥か何か間違っているのですか?ngTableの1ページあたりの行数が正しくありません

HTML

<div ng-controller="myCtl" ng-app="app"> 

    <table ng-table-dynamic="tableParams with cols" class="table table-bordered table-hover"> 
    <tr ng-repeat="row in data"> 
     <td title="'Name'" ng-repeat="col in cols">{{row[col.nm]}}</td> 
    </tr> 
    </table> 

</div> 

Javascriptを:

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

app.controller('myCtl', function($scope,NgTableParams) { 

     $scope.cols = [ {nm:'uid', title:'User ID'}, {nm:'ugr', title: 'Group ID'} ]; 


     $scope.data = [ 
     { uid: 'User 1',ugr: 'Group 1'}, 
     { uid: 'User 2', ugr: 'Group 2'}, 
     { uid: 'User 3', ugr: 'Group 3'}, 
     { uid: 'User 4', ugr: 'Group 4'}, 
     { uid: 'User 5', ugr: 'Group 5'}, 
     { uid: 'User 6', ugr: 'Group 6'}, 
     { uid: 'User 7', ugr: 'Group 7'}, 
     { uid: 'User 8', ugr: 'Group 8'} 

     ]; 

     $scope.tableParams = new NgTableParams({count:5},{dataset: $scope.data}); 

}); 
+0

良い例がここで見つけることができます:それは –

答えて

1

2つの問題:

$scope.tableParams = new NgTableParams({count:5},{dataset: $scope.data});

は、私は(私はデータセットは動的な列なしのテーブルのためだと思います)、データの代わりに、データセットを使用する方法 $scope.tableParams = new NgTableParams({count:5},{data: $scope.data,counts: [5, 10]});

注意する必要があります。

あなたのhtmlでは、$ dataのデータと$ columnsのカラムを取得する必要があります。これらのドル記号変数は、ng-tableによって提供される変数を参照します。

NgTableParamsに渡されたデータを使用する代わりに、データが$ scope.dataから直接ロードされていました。

<table ng-table-dynamic="tableParams with cols" class="table table-bordered table-hover"> 
     <tr ng-repeat="row in $data"> 
      <td ng-repeat="col in $columns">{{row[col.nm]}}</td> 
     </tr> 
</table> 

また、既にあなたのコラムを渡しているので、tdタイトルを設定する必要はありません。 http://plnkr.co/edit/U8eMbtzAlxIf6ftRtxZA?p=preview

+0

動的に列の作成を削除するようhttps://codepen.io/christianacca/pen/jPxgzY?editors=101 – ps0604

+0

私はディレクティブの中でNgテーブルを使ったことはありませんでしたが、データが正しく読み込まれていないと思います。データの代わりにデータセットを使用するか、NgTableParamsに渡すデータ配列をハードコーディングしてください(スコープに問題がないことを確認してください)。 –

+0

データの代わりにデータセットを使用すると正常に動作します – ps0604

1

私はこの問題は、TR/TDが正しく作成されていない、私は問題を修正として意味をなさないあなたのHTMLコードであると思います基本的には、以下のplunk

は、私が正しく行

生成するngのリピートを変更します
<table ng-table="tableParams" class="table" show-filter="true"> 
    <tr ng-repeat="user in $data"> 
    <td title="'Name'" filter="{ name: 'text'}" sortable="'name'"> 
     {{user.uid}}</td> 
    <td title="'Age'" filter="{ age: 'number'}" sortable="'age'"> 
     {{user.ugr}}</td> 
    </tr> 
</table> 
+0

あなたの答えが間違っている、私はあなたを複製しようとしましたngTableがコントローラの代わりにディレクティブにあるという唯一の違いを持つ答え。表は空で表示され、行はありません(タイトルのみ表示されます)。どのような問題が起きる可能性がありますか? – ps0604

関連する問題