【问题标题】:jhipster client side pass entity filter to server side?jhipster客户端将实体过滤器传递到服务器端?
【发布时间】:2018-06-08 06:53:45
【问题描述】:

阅读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

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

我在 ../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 我尝试了多种方法将 {} 或 [] 传递给 query 或 fitler。但是,我无法让它工作。

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

“RequestCriteria{}”无法获取我传入的任何内容。

任何人有想法我怎样才能使它工作?非常感谢。

【问题讨论】:

  • 过滤和枚举也有问题(请参阅stackoverflow.com/questions/47111866/…)。确实,JHipster 过滤看起来很强大,但有时使用 request-utils.ts 很难在 Angular 部分使用它
  • 谢谢,我读了你的帖子。因此,您使用 url 来路径标准,就像我在邮递员上测试一样。我仍然想使用生成的服务而不是直接使用http。无论如何,如果找不到方法,那将是选择。
  • 一个 PR 刚刚到达 JHipster 测试 request-util.ts。这实际上有很大帮助:github.com/jhipster/generator-jhipster/pull/6972/files#diff-1
  • 我刚刚看了你的代码。它更进一步。 Actaully,我想知道原始 authur delare fitler 的实际目的是什么,查询和搜索该方法但不实现它们?

标签: angular jhipster


【解决方案1】:

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

为传递给模型的参数 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-11
    • 2018-05-10
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多