angular - ngrx getWithQuery() 中的默认参数
问题描述
我想知道如何发送已经存在的默认数据getWithQuery()
,如下所示:
@Injectable({providedIn: 'root'})
export class CompaniesDataService extends DefaultDataService<Company> {
private readonly _URL: string = '/api/companies';
private readonly _DEFAULT_QUERIES: QueryParams = {top: '0', limit: '10', order: "name"};
constructor(http: HttpClient, httpUrlGenerator: HttpUrlGenerator) {
super('Company', http, httpUrlGenerator);
}
getWithQuery(queryParams: QueryParams | string = this._DEFAULT_QUERIES): Observable<Company[]> {
return this.http
.post<FmsHttpResponse<Company>>(`${this._URL}/search`, queryParams)
.pipe(map(response => response.content));
}
}
我的意思this._DEFAULT_QUERIES
是默认传递queryParams
。getWithQuery()
当我像这样使用解析器添加功能时:
return this.companyEntityService.getWithQuery()
.pipe(tap(() => this.companyEntityService.setLoaded(true)));
我得到错误:Expected 1-2 arguments, but got 0.
。
任何想法?我想补充一点,我是一个新手 ngrx 程序员,也许这是一个简单的问题,我找不到答案。
解决方案
为什么你必须发送已经在类中的东西作为参数?为什么不做这样的事情:
getWithQuery(queryParams: QueryParams | undefined): Observable<Company[]> {
if(queryParams === undefined){
queryParams = this._DEFAULT_QUERIES;
}
return this.http
.post<FmsHttpResponse<Company>>(`${this._URL}/search`, queryParams)
.pipe(map(response => response.content));
}
推荐阅读
- javascript - ArcGIS API for Javascript:FeatureLayerCollection 未显示所有要素
- python - 迭代张量作为数组 Tensorflow
- c++ - OpenMP 仅使用一个线程
- python - 当数据为每组的行而不是每组一行时,如何将数据集拆分/分区为训练和测试集
- java - 在Linux下,Java使用Rxtx串口出现异常,但Windows是可以的
- broadcast - Android O 上的隐式广播接收器
- angular - Angular Material 6 - 来自服务的垫表数据
- vb.net - Group by two columns in linq
- javascript - 如何在下面的 onClick 方法中运行 RowDataBound 方法?
- visual-studio-code - 更改 VSCode 小地图颜色