2016-02-09 1 views
0

Как фильтровать комплексное отображение выражений типа «brand.title». Вот мой инициализации fileds:Углеводородный фильтр с угловым фильтром

$scope.gridOptions2.columnDefs = [ 
    { field: 'code', displayName: "Code" }, 
    { field: 'brand.title', displayName: "Brand", resizable: true }, 
]; 

И фильтр:

$scope.singleFilter = function(renderableRows) { 
    var matcher = new RegExp($scope.selectedBrand); 
    renderableRows.forEach(function(row) { 
     var match = false; 
     ['code', 'brand.title' ].forEach(function(field) { 
      if (row.entity[field].match(matcher)) { 
       match = true; 
      } 
     }); 
     if (!match) { 
      row.visible = false; 
     } 
    }); 
    return renderableRows; 
}; 

Filtring на поле кода работает отлично, но brand.title дает следующее сообщение об ошибке: TypeError: Не удается прочитать свойство 'матч' из неопределенная

+0

У меня такая же проблема, это известная проблема с ui-grid? – Nodedeveloper101

ответ

0

альтернативы:

$scope.gridOptions2 = { 
    columnDefs : [ 
        { field: 'code', displayName: "Code", enableFiltering: true }, 
        { field: 'brand.title', displayName: "Brand", resizable: true, enableFiltering: true, filter: { 
         term : $scope.term }} 
       ], 
    onRegisterApi : function(gridApi) { 
      $scope.gridApi = gridApi; 
    } 
}; 

$scope.singleFilter = function() { 
    $scope.gridApi.grid.columns[2].filter.term = $scope.term; 
};