Angularjs 如果使用celltemplate映射数据,如何过滤UIGRID中的数据

Angularjs 如果使用celltemplate映射数据,如何过滤UIGRID中的数据,angularjs,angular-ui-grid,angular-filters,Angularjs,Angular Ui Grid,Angular Filters,我们使用UI网格来显示数据,我们在一列中使用celltemplate来过滤ID到employee的数据,我们已经为每一列启用了过滤器 sampledata:{ID:1 ,salary:3000,Gender:male} $scope.gridOptions = { enableFiltering: true, data:sampledata, columnDefs: [{Name:Employeetype, Field:ID, cell

我们使用UI网格来显示数据,我们在一列中使用celltemplate来过滤ID到employee的数据,我们已经为每一列启用了过滤器

sampledata:{ID:1 ,salary:3000,Gender:male}

$scope.gridOptions = {
    enableFiltering: true,
    data:sampledata, 
    columnDefs: [{Name:Employeetype, Field:ID,
                cellTemplate: '<div class="ngCellText">                {{row.entity.ID | ID2EMp}}</div>'}
{Name: salary, field:salary}
{Name:Gender field:Gender}]

}

my filter is something like below:

app.filter('ID2EMp', function() {
    return function(text) {
        if (text=='1') {
            return 'Employee';
        }
     if (text=='2')
        return 'Contractor';
    }
}); 
sampledata:{ID:1,工资:3000,性别:男性}
$scope.gridOptions={
启用筛选:正确,
数据:样本数据,
columnDefs:[{名称:Employeetype,字段:ID,
cellTemplate:{{row.entity.ID | ID2EMp}}}
{Name:salary,字段:salary}
{Name:Gender字段:Gender}]
}
我的过滤器如下所示:
app.filter('ID2EMp',function(){
返回函数(文本){
如果(文本=='1'){
返回“雇员”;
}
如果(文本=='2')
返回“承包商”;
}
}); 
所以,如果现在尝试使用UI网格文本过滤器过滤网格,如果我键入“Employee”/“Contractor”,它将不起作用,但如果我键入“1”/“2”,它将起作用。有谁能告诉我,在这种情况下,我应该能够使用Employee关键字进行过滤,如何使过滤器起作用


另外,如果ID=1,是否有其他方法可以使用filter而不是celltemplate操作数据以显示单元格为Employee。我尝试过使用cellfilter,但似乎不起作用

您可以通过两种方法来实现。两者都使用cellTemplate。首先像往常一样使用filter,{field | filter}}或在ng if语句中使用right条件

编辑:

第一个
cellTemplate:'{{row.entity.field | filter}}'
其中field是变量中的字段,作为数据传递到ui网格,filter就是filter


第二个:
cellTemplate:“{{row.entity.field}
where字段类似于第一个字段。some_condition是一个行显示的条件语句。

Hi,欢迎使用stackoverflow。请详细描述答案。给出一个完整的答案将有助于其他人理解你的答案。