我正在使用ng2-completer创建一个搜索框,用户可以在其中搜索github用户名。我使用了CompleterService,CompleterData来从API中获取数据。
Component.ts
protected searchStr: string;
protected captain: string;
protected dataService: CompleterData;
constructor(private completerService: CompleterService) {
this.dataService = completerService.remote(null, 'login', 'login');
this.dataService.urlFormater((term: any) => {
return `https://api.github.com/search/users?q=${term}&per_page=5`;
});
this.dataService.dataField('items');
}html文件:
<ng2-completer [(ngModel)]="searchStr" [datasource]="dataService" [minSearchLength]="3" inputClass="form-control"></ng2-completer>错误:
ERROR in src/app/search-box/search-box.component.ts(18,22):
error TS2339:
Property 'urlFormater' does not exist on type 'CompleterData'.
src/app/search-box/search-box.component.ts(21,22):
error TS2339: Property
'dataField' does not exist on type 'CompleterData'.但是开发版本运行良好,但仍然在cmd中产生错误。
发布于 2018-08-13 15:12:22
将completerData更改为RemoteData可以正常工作。
import { CompleterService, CompleterData, RemoteData } from 'ng2-completer';
searchStr: string;
dataService: RemoteData;
constructor(private completerService: CompleterService) {
this.dataService = completerService.remote(null, 'login', 'login');
this.dataService.urlFormater((term: any) => {
return `https://api.github.com/search/users?q=${term}&per_page=5`;
});
this.dataService.dataField('items');
}这可以很好地工作。
发布于 2018-08-12 19:31:51
你错过了CompleterData的依赖注入了吗?而不是在构造函数外部声明为:
protected dataService: CompleterData;我建议您将其注入到构造函数中,如下所示:
constructor
(
private completerService : CompleterService,
private dataService : CompleterData
)
{}https://stackoverflow.com/questions/51807202
复制相似问题