2016-10-18 74 views
0

我的一個ng-table列包含一個選擇性下拉列表。此列的值是另一個表的外鍵。我不想顯示這個鍵,而是希望顯示這個鍵代表的行的另一個屬性(名稱)。 我的數據位於一個名爲table的數組中。自定義過濾/使用ng-table和selectize進行排序

我的下拉菜單正確顯示使用另一個數組,fkTable。

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

其中fkConfig:

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

現在我希望能夠基於國外行名稱,而不是ID過濾和秩序此列。

我試圖去了解這個映射的ID,以他們的名字:

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

,並通過這個特定的列創建自定義過濾器:

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); 
      } 
    } 
} 

但是,這似乎是一個尷尬的和低效的方式由於這兩個圖書館的普及,我會認爲這是一個比較常見的問題。

我的問題是如何有效地創建這個外鍵列的自定義過濾器。

回答

0

我去解決辦法:

  • 與它們對應的名稱替換所有外鍵
  • 進行編輯時,轉換名回鑰匙,他們代表
相關問題