我正在尝试从数据库服务器加载数据。我有一个简单的问题:如何将特定用户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);
});
});
}
答案 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');
}