jhipster客户端将实体过滤器传递到服务器端?

时间:2017-12-27 16:19:31

标签: angular jhipster

阅读http://www.jhipster.tech/entities-filtering/后,我可以让我的jhipster生成的应用程序过滤器在邮递员上工作。

例如,我可以使用http://localhost:8080/api/requests?page=0&size=20&sort=model,asc&sort=id&id.in=20000,20001

在邮递员身上获得正确的结果

我的问题如何让它在生成的角度客户端应用程序上运行?

我在../shared文件夹中看到它有“request-util.ts”。在其中,有一个名为“query”和“filter”的参数。

export const createRequestOption = (req?: any): BaseRequestOptions => {
const options: BaseRequestOptions = new BaseRequestOptions();
if (req) {
    const params: URLSearchParams = new URLSearchParams();
    params.set('page', req.page);
    params.set('size', req.size);
    if (req.sort) {
        params.paramsMap.set('sort', req.sort);
    }
    params.set('query', req.query);
    params.set('filter', req.filter);

    options.params = params;
}
return options;

};

阅读JHipster: Filtering entities with criteria - intended Angular client-side approach后 我尝试了几种方法来传递{}或[]来查询或装配。但是,我无法让它发挥作用。

在服务器端,日志说:RequestResource.getAllRequests()with argument [s] = [RequestCriteria {},Page request [number:0,size 21,sort:happenDate:DESC]]

“RequestCriteria {}”无法获取任何内容。

任何人都有想法,我怎么能让它发挥作用?非常感谢。

1 个答案:

答案 0 :(得分:1)

作为一种临时方式,这是我目前将过滤器从客户端传递到服务器的方法:

将paramater req对象的过滤器属性传递给模拟 some.service.ts query(req?:any)函数,如下所示

 req.filter =  {
        'contactName.contains': "Smith"
        'contactNumber.contains':"186"
    };

然后更改../shared文件夹 request-util.ts 文件

if (req.filter) {
        for (const k in req.filter) {
            if (k) {
              params.append(k, req.filter[k]);
           }
        }

    }
    // params.set('filter', req.filter);