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

时间:2016-03-10 04:55:58

标签: angularjs angular-ui-grid angular-filters

我们正在使用UI GRID来显示数据,我们在一列中使用celltemplate来过滤ID到员工的数据,并且我们为每一列启用了过滤器。

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';
    }
}); 

所以现在如果尝试使用UI GRID文本过滤器过滤网格,如果我输入“雇员”/“承包商”它将无法工作但如果我输入'1'/'2'它将起作用..任何人都可以建议怎么能我在这种情况下使过滤器工作,我应该能够使用EMployee关键字进行过滤。

此外,还有其他任何方式我可以操作数据显示单元格作为员工如果ID = 1使用过滤器但不使用celltemplate.i已尝试使用cellfilter但它似乎无法正常工作

1 个答案:

答案 0 :(得分:0)

你可以用两种方式做到这一点。两者都有cellTemplate。首先像往常一样使用过滤器,{{field |过滤}}或在ng-if语句中使用正确的条件。

编辑:

首先cellTemplate: '<div>{{row.entity.field | filter }} </div>' 其中field是变量中的字段,您传递给ui-grid作为数据,过滤器只是过滤器。

第二个:cellTemplate: '<div ng-if="some_condition">{{row.entity.filed}}</div>其中字段与第一个字段相同。 some_condition是行显示的条件语句。