0

您好我有一个输入搜索部分,用户在其中键入一个名称,它会动态发送一个带有该名称的 HTTP 获取请求。现在我需要在输入中接受两个参数(名字和姓氏),当用户输入它时,动态地将其分隔为单独的变量并发送这样的 GET 请求?first_name=${first name}&last_name=${last name}

现在,当用户键入时,我可以将其设置为名字或姓氏,但不知道如何将其分开..

我的输入如下所示:

  <label for="i2" class="control-label">Search Employees</label>
  <input name="term"
        [(ngModel)]="term"
        (keyup)="searchTerm()"
        type="text"
        class="form-control"
        id="i2" />

在组件中:

 ngOnInit(): void {
    this.busy = this._dataService.searchTerm(this.term)
      .subscribe(employees => this.employees = employees);
  }

  searchTerm() {
    this._dataService.searchTerm(this.term)
    .subscribe(employees => this.employees = employees)
  }

我有一个使用该术语发出 api GET 请求的搜索服务:

  searchTerm(searchString:any, searchString1:any, type="last_name", type1="first_name") : Observable<IEmployee[]> {
    let headers = new Headers();
    this.createAuthorizationHeader(headers);

    this.url = `someUrl?${type}=${searchString}&${type1}=${searchString1}`;

    this.numberUrl = `someUrl?employee_number=${searchString}`;


    if (isNaN(searchString) || searchString < 1)
        return this._http.get((this.url), {headers})
            .map((resp: Response) => <IEmployee[]>resp.json())
        else {
          return this._http.get(this.numberUrl, {headers})
            .map((resp: Response) => <IEmployee[]>resp.json())
        }
    }

我尝试拆分并使用正则表达式检测逗号,然后分隔searchString,但我无法在未定义的情况下使用拆分或正则表达式。

甚至可以将用户输入(一个 ngModel)动态分离为两个单独的值吗?

4

0 回答 0