Angularjs ui-网格过滤复合表达式

Angularjs ui-grid filter complex expression

如何过滤像 "brand.title" 这样的复杂表达式映射。这是我的文件初始化:

$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;
};

代码字段上的过滤工作正常,但 brand.title 给出以下错误: TypeError: 无法读取未定义的 属性 'match'

备选方案是:

$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;
 };