我的一个ng-table列包含一个selectize下拉列表。此列的值是另一个表的外键。我希望显示此键所代表的行的另一个属性(名称),而不是显示此键。 我的数据位于一个名为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映射到他们的名字:
$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 :(得分:0)
我选择的解决方案: