如何从ui-grid列标题中获取输入框(filterbox)值

时间:2016-11-11 16:42:11

标签: angular-ui-grid

我正在尝试获取ui-grid列标题中的输入框值。

我正在尝试使用自己的过滤功能,该功能需要从列标题中的多个输入框中获取值。

$scope.gridOptions.columnDefs = [
    {
        field: 'name', 
        displayName: 'Name', 
        headerCellTemplate: '<input type='text' &nbsp;disallow-spaces placeholder='Enter to Search'  ng-model='testCol' id='Enter to Search'>},
];

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以将自定义过滤器提供给columnDef,如下所示:

$scope.gridOptions.columnDefs = [
  {
    field: 'name', 
    displayName: 'Name', 
    headerCellTemplate: '<input type='text' &nbsp;disallow-spaces placeholder='Enter to Search'  ng-model='testCol' id='Enter to Search'>,
    filter: {
      type: uiGridConstants.filter.INPUT,
      condition: myCustomFilterFunction
  },
];

,您的过滤功能将如下所示:

function myCustomFilterFunction(term, value, row, column){
  //do something here
}
每当过滤器输入发生变化时,uiGrid都会调用myCustomFilterFunction。参数term是您正在寻找的参数。它是输入框中的值。参数value指的是当前行的列的值。通过参数rowcol,您可以访问当前的rowEntitycolumn

myCustomFilterFunction应该返回一个boolen。如果行的返回值为true,则显示该行,否则不显示。