2016-10-18 14 views
0

ng-tableカラムの1つにselectizeドロップダウンが含まれています。この列の値は、別の表の外部キーです。このキーを表示する代わりに、このキーが表す行の別の属性(名前)を表示したいと考えています。 私のデータはテーブルと呼ばれる配列にあります。ng-tableでカスタムフィルタリング/順序付けし、

別の配列fkTableを使用して、プルダウンが正しく表示されています。

<selectize ng-model="row[col.name]" 
         options='fkTable' 
         config='fkConfig'"> 

fkConfig場所:

$scope.fkConfig = { 
     maxItems: 1, 
     valueField: 'id', 
     labelField: 'name', 
     searchField: 'name' 
    }; 

今私は、外国の列名ではなく、IDに基づいて、この列をフィルタリングして注文することができるようにしたいです。

私は、これは自分のIDを名前にマッピングして行くことを試み:

function filterSelectizeColumn(table, searchTerm) { 
    for (var i = 0; i < table.length; i++) { 
      var fkValue = table[i].fk; 
      var foreignRowName = $scope.foreignRowNames[fkValue]]; 

      if (foreignRowName.indexOf(searchTerm) == -1) { 
       table = table.splice(i, 1); 
      } 
    } 
} 

しかし、これは不便で非効率的な方法だ:

$scope.foreignRowNames = { 
    0:"not grouped" 
    1:"Google" 
    14:"Youtube" 
} 

と、この特定の列のためのカスタムフィルタを作成することによって、何かに行くということは、2つの図書館の人気のために、やや共通の問題だと思っていたでしょう。

私の質問は、この外部キー列のカスタムフィルタを効率的に作成する方法です。

答えて

0

私が一緒に行った解決策:それらに対応する名前を持つすべての外部キーを交換

  • は編集を行う際、キーに戻って名前を変換
  • は、彼らが
を表します
関連する問題