在angular-in-memory-web-api中使用条件日期参数的HTTP请求

时间:2018-01-15 09:48:19

标签: angular angular-http http-request-parameters angular-in-memory-web-api

我有一组名为成员

的对象
members = [
    {id:'1', firstName:'John', lastName:'Black', birthDate:'1956-11-22', gender:'Male', email:'johnblack@gmail.com', phone:'806-555-1234'}
    {id:'2', firstName:'Josh', lastName:'Black', birthDate:'1950-02-21', gender:'Male', email:'joshblack@gmail.com', phone:'806-555-1234'}
    {id:'3', firstName:'Johny', lastName:'Black', birthDate:'1953-02-03', gender:'Male', email:'johnyblack@gmail.com', phone:'806-555-1234'}
]

我需要使用 birth-in-memory-web-api HTTP请求,根据 birthDate 从此数组中获取对象, 喜欢:大于/小于任何给定日期。

那么,什么条件参数可以获得比任何给定日期更大的日期?

 url: api/members/?birthDate{condition}{givenDate}

1 个答案:

答案 0 :(得分:1)

简而言之 - 你做不到。至少到当前写作版本(0.6.0)

您可以尝试使用正则表达式,但正则表达式不适用于值比较(特别是对于日期格式)。为什么要这么麻烦?您将仅在模拟时使用angular-in-memory-web-api,因此只需过滤服务中返回的数据集,如下所示:

getMembers(value?: string): Observable<Member[]> {
    return this.http.get("api/members")
        .map((response:Response) => {
          let members= <Member[]>response.json().data;     
          if (!value) {
            return members;
          }
          return members.filter(v => v.birthDate<=value);
        })
        .do(data => console.log('members: ' + JSON.stringify(data)))
}

注意,我们可以将它比作字符串,因为你的YYYY-mm-dd格式,否则value和birthDate应该是类型Date