0

呈现“自定义”字段的一个副作用是全局搜索不再能够在其中工作。我相信会发生这种情况,因为单元格以 json 对象开始,然后我在该对象中只渲染一个字符串。结果,全局搜索无法进入它。我基本上是遍历对象列表,然后显示该对象的单个属性(字符串)以显示在该单元格中。不幸的是,所有这些文本对全局搜索都是不可见的。有没有办法可以将自定义呈现的文本添加到全局搜索中?我已经包含了渲染组件的代码:

@Component({
    selector: 'scope-renderer',
    template: `
        <ul class="list-unstyled">
            <li *ngFor="let scope of scopes">
                {{ scope.displayName }}
            </li>
        </ul>
    `
})
export class ScopeRendererComponent implements OnInit {
    @Input() rowData: any;

    scopes: Array<Scope>;

    ngOnInit() {
        this.scopes = this.rowData.scopes;
    }
}

class Scope {
    name: string;
    displayName: string;
    description: string;
    required: boolean;
    emphasize: boolean;
    showInDiscoveryDocument: boolean;
}
4

1 回答 1

1

这里有一个错误:https : //github.com/akveo/ng2-smart-table/blob/master/src/ng2-smart-table/lib/data-source/local/local.filter.ts#L11将“”作为单元格值提供给任何非基本属性的 filterFunction。

我所做的是像这样破解组件(上面的链接):

return data.filter(function (el) {
    //var value = typeof el[field] === 'undefined' || el[field] === null ? '' : el[field];
    return filter.call(null, el, search);
});

并将整个元素传递给过滤器。然后,我在 filterFunction 中获得了该项目的全部内容。

filterFunction(el?: any, search?: string): boolean {          
  return true;
}

对我来说效果很好。

于 2018-05-29T11:26:20.470 回答