2016-06-17 8 views
2

非テキストデータを含む列のカスタム並べ替えを作成する方法はありますか?ここで角度データセット:非テキストデータの並べ替え

はスナップショットです:

enter image description here

私はアイコンのシンボルでソートしたいと思います。

P.S.両方のアイコンは、ng-ifとデータセットのブール値を使用して表示されます。

編集:データを表示する角度の方法を使用しています。

<table datatable="ng" dt-options="dtOptionsLoginHistory" dt-column-defs="dtColumnDefsLoginHistory" 
       class="table table-striped row-border hover" 
       width="100%"> 
      <thead> 
      <tr> 
       <th>Success</th> 
      </tr> 
      </thead> 
      <tbody> 
      <tr ng-repeat="entry in entries"> 
       <td style="width: 10%;"> 
        <i ng-if="!entry.failed" class="fa fa-check" style="color: green;"></i> 
        <i ng-if="entry.failed" class="fa fa-times" style="color: red;"></i> 
       </td> 
      </tr> 
      </tbody> 
     </table> 
+0

あなたがテーブルをレンダリングする方法を正確に示してください

$scope.dtColumnDefsLoginHistory = [ DTColumnDefBuilder.newColumnDef(0).withOption('orderDataType', 'fa-classes') ]; 

小さなデモ:このようにそれを使用してください。 – davidkonrad

+1

@davidkonrad私の質問が更新されました。 –

+0

@davidkonradあなたはとても親切で、私の他のdatatablesの質問を見てください。あなたはおそらくこのライブラリをよく知っているでしょうか?ここにリンクがあります:http://stackoverflow.com/questions/38032004/angular-datatables-searching-for-a-specific-html-class-value –

答えて

1

あなたが望むものを達成するには、いくつかの異なる方法があります。

$.fn.dataTable.ext.order['fa-classes'] = function(settings, col) { 
    return this.api().column(col, {order:'index'}).nodes().map(function(td, i) { 
    return $('i', td).hasClass('fa-check') ? '1' : '0'; 
    }) 
} 

はすべて<i class="fa fa-check">ため1、他の0を与える:あなたのセットアップと考える私は、最も簡単にはfa-*クラス<i>要素がでレンダリングされているに基づいて値を返す特殊なorderTypeを作成するだろうと信じています。これは、複数の異なる注文値を返すswitch { .. }でもかまいません。 - >http://plnkr.co/edit/8S5f2MR331CiNBYYfDQf?p=preview

+0

ありがとう、あなたのソリューションは魅力的に機能します。 –

0

ORDERBYフィルタを追加します。

<tr ng-repeat="entry in entries orderBy : 'failed' "> 
    <td style="width: 10%;"> 
     <i ng-if="!entry.failed" class="fa fa-check" style="color: green;"></i> 
     <i ng-if="entry.failed" class="fa fa-times" style="color: red;"></i> 
    </td> 
</tr> 
+0

'orderBy'とdataTablesは良い考えではありません。最高でも、基本的な内部行構造とは異なる視覚的にレンダリングされた行になります。これは、dataTablesを持たないDOMテーブルの正解になります。 – davidkonrad