Ionic 2 - 如何将id参数传递给“http get”函数,以便它只显示特定用户的数据,而不是全部

时间:2017-07-11 22:43:23

标签: angular ionic2

我正在尝试从数据库服务器加载数据。我有一个简单的问题:如何将特定用户ID传递给http get请求,以便它只获取该用户的数据而不是整个数据。我使用mongodb作为db和Ionic 2作为前端。

以下是我的代码:

Home.html中

<ion-card *ngFor="let item of items" (click)="goToOtherPage(item._id)" class="container">
  <ion-list>
    <ion-item>
      <ion-avatar item-left>
        <!--<img [src]="item.image" />-->
      </ion-avatar>
      <h2 [innerHTML]="item.patient.name"></h2>
    </ion-item>
  </ion-list>
</ion-card>

Home.ts

load() {

  let params = {
    userId: '123'
  };

  this.tunzaProvider.load()
    .then(data => {
      this.items = data;
    });

}

Provider.ts

load() {


  return new Promise(resolve => {

    this.http.get(this.apiUrl + 'getusertunzas')
      .map(res => res.json())
      .subscribe(data => {
        this.data = data;
        resolve(this.data);
      });
  });

}

2 个答案:

答案 0 :(得分:1)

以下是我通过Id获取的一种服务方法的示例:


builder.appendInternational(ICommandBuilder.InternationalType.UK);
builder.append((byte) 0x23); //imagine searching through those numbers one by one!

希望你可以将它应用到你的例子中。

此代码的关键部分是网址。请注意,Id作为URL上的参数传递。

答案 1 :(得分:1)

<强> Home.ts

load(id: number) {
        let params = {
            userId: id
        };
        this.tunzaProvider.load(param)
            .subscribe(data => {
                this.items = data;
            }, err => {
                console.error(err);
            });
    }

<强> provider.ts

http get方法:

    load(param) {
        let headers = new Headers({
            'Content-Type': 'application/x-www-form-urlencoded'
        });
        return this.http.get(`${baseURL}/getusertunzas/${param.userId}`, {
                headers: headers
            })
            .map((response: Response) => {
                return response.json();
            })
            .catch(this.handleError);
    }

http post方法:

    load(param) {
        let headers = new Headers({
            'Content-Type': 'application/x-www-form-urlencoded'
        });
        return this.http.post(`${baseURL}/getusertunzas`, JSON.stringify(param), {
                headers: headers
            })
            .map((response: Response) => {
                return response.json();
            })
            .catch(this.handleError);
    }

错误处理程序(在handleError方法中捕获每个调用的错误):

handleError(error) {
    console.error(error);
    return Observable.throw(error || 'Server error');
}