2017-03-02 88 views
0

angularjs项目的网格。我需要日期时间选择器的过滤器。 所以我用角角自举的DateTimePicker-指令为 现在我的过滤器文本框中显示的DateTimePicker。angularjs ui-grid datetime选择器不工作

但是,当我更改日期也不会触发过滤器更换事件

这里是我的代码:

$scope.gridOptions = { 
     paginationPageSizes : [1], 
     paginationPageSize : 1, 
     useExternalPagination: true, 
     showGridFooter  : true, 
     showColumnFooter  : true, 
     enableFiltering  : true, 
     useExternalFiltering : true, 
     onRegisterApi  : function(gridApi) { 
      $scope.gridApi = gridApi; 

      $scope.gridApi.core.on.filterChanged($scope, function(){ 
         console.log("teststs"); 
       angular.forEach(this.grid.columns, function(column){ 
        console.log(column.filters[0].term); 
        if(column.filters[0].term) 
         $scope.searchParams[column.name] = column.filters[0].term; 
        else if(column.filters[0].term === null) 
         delete $scope.searchParams[column.name]; 
       }); 

       getPages(1, $scope.searchParams); 
      }); 
     }, 
     columnDefs   : [ 
      { 
       field: 'createdAt', 
       filterHeaderTemplate: '<div class="ui-grid-filter-container"><input type="text" id="dt1" class="form-control input-sm" datetimepicker ng-model="colFilter.term" placeholder="RAMA" name="time"></div>', 
       cellFilter: 'date: "yyyy-MM-dd"' 
      }, 
      { 
       field: 'updatedAt', 
       cellFilter: 'date: "' + ENV.dateFormat + '"' 
      } 
     ] 
    }; 

回答

0
在日期选择器的改变事件

,您可以添加:

$scope.gridPacksApi.core.raise.filterChanged(); 

强制该事件。