2
我已经在用户界面中创建了一个自定义过滤器 - 网格为一列。 我想只过滤与应用的过滤器完全匹配其值,而不是包含在用户界面网格中的自定义过滤器以过滤完全匹配
下面是我的自定义过滤器:
myapp2.controller('activityFilterCtrl', function($scope, $compile, $timeout) {
var $elm;
$scope.showAgeModal = function() {
$scope.listOfAges = ['TRL1','TRL2','TRL3','TRL4','TRL5','TRL6','Launch Gate','Alpha Gate','Beta Gate','H-O','Intermediate H-O','Internal Review','DEL','Evaluation','MIL'];
$scope.gridOptions = {
data: [],
enableColumnMenus: false,
onRegisterApi: function(gridApi) {
$scope.gridApi = gridApi;
if ($scope.colFilter && $scope.colFilter.listTerm){
$timeout(function() {
$scope.colFilter.listTerm.forEach(function(activityType) {
var entities = $scope.gridOptions.data.filter(function(row) {
return row.activityType === activityType;
});
if(entities.length > 0) {
$scope.gridApi.selection.selectRow(entities[0]);
}
});
});
}
}
};
$scope.listOfAges.forEach(function(activityType) {
$scope.gridOptions.data.push({activityType: activityType});
});
var html = '<div class="modal" ng-style="{display: \'block\'}"><div class="modal-dialog"><div class="modal-content"><div class="modal-header">Filter Ages</div><div class="modal-body"><div id="grid1" ui-grid="gridOptions" ui-grid-selection class="modalGrid"></div></div><div class="modal-footer"><button id="buttonClose" class="btn btn-primary" ng-click="close()">Filter</button></div></div></div></div>';
$elm = angular.element(html);
angular.element(document.body).prepend($elm);
$compile($elm)($scope);
};
$scope.close = function() {
var ages = $scope.gridApi.selection.getSelectedRows();
$scope.colFilter.listTerm;
$scope.colFilter.listTerm=[];
ages.forEach(function(activityType) {
$scope.colFilter.listTerm.push(activityType.activityType);
});
$scope.colFilter.term = $scope.colFilter.listTerm.join(', ');
$scope.colFilter.condition = new RegExp($scope.colFilter.listTerm.join('|'));
if ($elm) {
$elm.remove();
}
};
}) }
,这是我的专栏def为该列:
{
name: "Activity Type",
field: 'activityType',
visible: false,
headerTooltip:'Activity Type',
enableHiding: false,cellClass: 'scheduleData',
minWidth:150,enableFiltering: true,
filterHeaderTemplate: '<div class="ui-grid-filter-container" ng-repeat="colFilter in col.filters"><div activity-filter-model></div></div>',
filter: {
condition: function(searchTerm, activityType) {
return activityType.indexOf(searchTerm) > -1
}
},
},
请指导我,如果我必须在控制器中使用正则表达式,而应用col.Filter条件或列def中的过滤条件是否有效。
不要忘记标记你的答案为“接受”。谢谢,请。 –