从Angular中的下拉列表仅将所选值作为参数传递给Api调用

时间:2019-12-21 08:15:04

标签: angular api

当用户从给定选项中进行选择时,我正在调用api传递参数。问题是我只想传递用户选择的参数并返回相应的结果。 当前,如果选择了所有下拉菜单,则api返回结果,而不是仅选择一个下拉菜单时返回。

nextpage(){
this.httpClient.get('https://crm.c:3000/cal_lg', {
        params: {
          filter: '[["call_status","=","' + this.selectedType + '"],["partner_mobile","=","' + this.selectedUser + '"]]',
          pageNumber: '0',
          pageSize: '50'
        },
        observe: 'response'
      }).subscribe(users => {
   console.log(users);
})
} }

这是html代码:

<select [(ngModel)] = "selectedType" allow-clear="true" (change)="nextPage()">
          <option *ngFor="let activity of filteredType"  [ngValue]="activity">{{activity}}</option>
      </select>

        <select [(ngModel)] = "selectedUser" (change)= "nextPage()" >
          <option *ngFor="let test of filteredUsers " [ngValue]="test">{{test}}</option>
        </select>

2 个答案:

答案 0 :(得分:0)

这位于您的逻辑中,您需要根据需要更改逻辑。我猜这里的问题是因为您要为不同的下拉菜单调用相同的函数,所以结果总是最新的。

您可以根据每个下拉菜单的选择创建两个不同的API调用,或使用现有代码添加if条件

答案 1 :(得分:0)

如果要将“选定值”传递给给定方法: nextPage()

<select [(ngModel)] = "selectedType" allow-clear="true" (change)="nextPage($event.target.value)">
          <option *ngFor="let activity of filteredType"  [ngValue]="activity">{{activity}}</option>
      </select>

        <select [(ngModel)] = "selectedUser" (change)= "nextPage($event.target.value)" >
          <option *ngFor="let test of filteredUsers " [ngValue]="test">{{test}}</option>
        </select>

这是一种获取选项当前选定值的方法。 可能会帮助您进一步调用API。