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つの図書館の人気のために、やや共通の問題だと思っていたでしょう。
私の質問は、この外部キー列のカスタムフィルタを効率的に作成する方法です。