gpt4 book ai didi

angular - 使用 Angular 2 使用 ag-grid 提前输入

转载 作者:太空狗 更新时间:2023-10-29 19:35:06 26 4
gpt4 key购买 nike

我使用自定义过滤器制作了一个带有 ag-grid 的表格。我想在搜索字段中添加预输入/自动完成功能。但我收到一个错误:

无法绑定(bind)到“ngbTypeahead”,因为它不是“输入”的已知属性。 (" 过滤器:][ngbTypeahead]="search" (ngModelChange)="onChange($event)" [ngModel]="文本">"): ProjectFilterComponent@2:8

我在自定义过滤器中使用外部库 (ng-bootstrap) 进行预输入。

@Component({
selector: 'filter-cell',
template: `
Filter: <input style="height: 20px"
[ngbTypeahead]="search"
(ngModelChange)="onChange($event)"
[ngModel]="text">
`

})

class ProjectFilterComponent implements AgFilterComponent{
public params:IFilterParams;
public valueGetter:(rowNode:RowNode) => any;
public text;
allTextFromProject = this.order.projects

constructor(private order : WorkorderComponent){


}

@ViewChild('projectinput', {read: ViewContainerRef}) public input;




agInit(params:IFilterParams):void {
this.params = params;
this.valueGetter = params.valueGetter;


}

isFilterActive():boolean {
return this.text !== null && this.text !== undefined && this.text !== '';
}

doesFilterPass(params:IDoesFilterPassParams):boolean {
return this.text.toLowerCase()
.split(" ")
.every((filterWord) => {
return this.valueGetter(params.node).toString().toLowerCase().indexOf(filterWord) >= 0;
});
}

getModel():any {
return {value: this.text};
}

setModel(model:any):void {
this.text = model.value;
}

afterGuiAttached(params:IAfterFilterGuiAttachedParams):void {

this.input.element.nativeElement.focus();
}

search = (text$: Observable<string>) =>{
text$
.debounceTime(200)
.distinctUntilChanged()
.map(term => term.length < 1 ? []
: this.order.projects.filter(v => new RegExp(term, 'gi').test(v)).splice(0, 10));


onChange(newValue):void {
if (this.text !== newValue) {
console.log(newValue)

this.text = newValue;
this.order.filterFunction(newValue, this.params.colDef.colId, this.order.page)



}
}

[ngbTypeahead] 在其他不使用 ag-grid 的搜索字段中工作正常。我需要在 ag-grid 的搜索字段中使用 [ngbTypeahead] 函数

最佳答案

createColomnDefs() 方法中将 NgbTypeaheadModuleNgbModule 导入到您的 ModuleImports 中,如下所示:

createColumnDefs()  {
this.columnDefs =[
{ headerName: "Extern id", field: "externalRefId", width:150, colId:"workorder.externalRefId",
filterFramework:{
component: PartialMatchFilterComponent,
moduleImports: [FormsModule, NgbModule, NgbTypeaheadModule ]
}},

关于angular - 使用 Angular 2 使用 ag-grid 提前输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40866341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com