一列上的 ng-table filterFn
ng-table filterFn on one column
我一直在与 ng-table 合作,使用 underscore.js 创建带有自定义过滤器的 table。过滤器有效,但我只想在一列上应用此过滤器,在所有其他列上,默认过滤器就可以了。
目前我有:
function testEngineerFilter(data, filterValues) {
if (filterValues.testEngineer == null)
// Return the default filter?
return _.filter(data, function(testCase) {
return _.some(testCase.testEngineers, function(testEngineer) { return testEngineer.id === filterValues.testEngineer; })
|| _.some(testCase.preAssignedTestEngineers, function(testEngineer) { return testEngineer.id === filterValues.testEngineer; });
});
}
我想我应该能够 return if 语句后的默认过滤器,但我不知道它位于何处。如有任何帮助,我们将不胜感激!
今天早上弄明白了。这就是我的选择:
function testEngineerFilter(data, filterValues) {
if (filterValues.testEngineer != null) {
data = _.filter(data, function(t) {
return _.some(t.testEngineers, function(te) { return te.id === filterValues.testEngineer; })
|| _.some(t.preAssignedTestEngineers, function(te) { return te.id === filterValues.testEngineer; });
});
}
// Remove testEngineer since it was filtered already
delete filterValues.testEngineer;
data = $filter('filter')(data, filterValues);
return data;
}
我一直在与 ng-table 合作,使用 underscore.js 创建带有自定义过滤器的 table。过滤器有效,但我只想在一列上应用此过滤器,在所有其他列上,默认过滤器就可以了。
目前我有:
function testEngineerFilter(data, filterValues) {
if (filterValues.testEngineer == null)
// Return the default filter?
return _.filter(data, function(testCase) {
return _.some(testCase.testEngineers, function(testEngineer) { return testEngineer.id === filterValues.testEngineer; })
|| _.some(testCase.preAssignedTestEngineers, function(testEngineer) { return testEngineer.id === filterValues.testEngineer; });
});
}
我想我应该能够 return if 语句后的默认过滤器,但我不知道它位于何处。如有任何帮助,我们将不胜感激!
今天早上弄明白了。这就是我的选择:
function testEngineerFilter(data, filterValues) {
if (filterValues.testEngineer != null) {
data = _.filter(data, function(t) {
return _.some(t.testEngineers, function(te) { return te.id === filterValues.testEngineer; })
|| _.some(t.preAssignedTestEngineers, function(te) { return te.id === filterValues.testEngineer; });
});
}
// Remove testEngineer since it was filtered already
delete filterValues.testEngineer;
data = $filter('filter')(data, filterValues);
return data;
}