使用UI网格自定义过滤器时,过滤器存储在listTerm对象和默认术语对象中(以逗号分隔)。
默认网格还原尝试还原打破过滤器的术语对象。 如果我在控制台中记录状态,我可以看到每个包含2个对象的列的过滤器数组a" listTerm"包含所选术语的数组和包含以逗号分隔的相同值的术语对象 术语:" filvalue1,filvalue2," 我确定网格正在恢复此逗号分隔对象并将其视为单个过滤器文本。 任何想法如何让它识别逗号作为分隔符或以不同的方式做到这一点?
答案 0 :(得分:0)
如果其他人试图实现同样的事情(持久性多选过滤器),我设法通过添加一个分隔符处理程序作为我使用过滤器过滤的列的过滤器来实现:
filter: {
condition: function(searchTerm, cellValue) {
var separators = ['-', '/', ':', ';', ','];
var strippedValue = searchTerm.split(new RegExp(separators.join('|'), 'g'));
var bReturnValue = false;
for(iIndex in strippedValue){
var sValueToTest = strippedValue[iIndex];
sValueToTest = sValueToTest.replace(" ", "");
if (cellValue.toLowerCase().indexOf(sValueToTest.toLowerCase()) >= 0)
bReturnValue = true;
}
return bReturnValue;
}
}
归功于布鲁诺·科斯塔 How to filter with multiple values in ui-grid? (angularjs)