如何使用loopback-sdk-builder实现嵌套查询?

时间:2018-09-11 11:32:30

标签: angular loopback

我有三种loopback.js模型:

  • 客户
  • 订阅
  • 类别

这些模型通过“具有许多”类型关系链接。这意味着在每个订阅中,我都有一个指向客户端模型的ID和一个指向类别模型的ID。

在客户端上,sdk-builder生成一个名为getSubscriptions的方法: 定义如下:

public getSubscriptions(id: any, filter: LoopBackFilter = {}, customHeaders?: Function): Observable<any> {
  let _method: string = "GET";
  let _url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() +
"/Clients/:id/subscriptions";
  let _routeParams: any = {
  id: id
};
  let _postBody: any = {};
  let _urlParams: any = {};
if (typeof filter !== 'undefined' && filter !== null) _urlParams.filter = filter;
let result = this.request(_method, _url, _routeParams, _urlParams, _postBody, null, customHeaders);
return result;

}

当我运行此方法时,该客户端的整个订阅列表中都有一个可观察到的东西。

我的问题是,在此列表中,我有类别ID。我想请求类别模型来获取类别名称。

嵌套请求(在第一个subscription()返回的每一行上进行另一个查找)不是一个选择,因为它将生成大量HTTP请求。

有人对如何实现这一点有任何想法吗?

亲切的问候。

1 个答案:

答案 0 :(得分:0)

使用“包含”过滤器可以解决此问题,如下面的代码行所示:

  this.souscription.find({include: {relation: 'category'}})