【发布时间】:2018-02-14 05:46:52
【问题描述】:
我有这个服务可以从 django rest api 获取对象列表。
import {Injectable} from '@angular/core';
import {Headers, Http} from '@angular/http';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';
import {environment} from '../../../environments/environment';
import {Delegation} from "../delegations/delegation";
@Injectable()
export class DelegationsService {
private headers = new Headers({'Content-Type': 'application/json'});
constructor(private http: Http) { }
getDelegations(userid: number) {
return this.http.get(environment.apiUrl + '/api/v1/delegations/' + userid )
.map(res => <Delegation[]>res.json());
}
}
../delegations/delegation.ts的内容是:
export class Delegation {
id: number;
delegator: number;
delegatee: number;
}
委托人和被委托人的数字是“用户”的数据库 ID。我需要显示可通过另一个 REST API url 获得的实际用户名和登录 ID。我想我可以将../delegations/delegation.ts 修改成这样:
export class Delegation {
id: number;
delegator: number;
delegator_login: string;
delegator_name: string;
delegatee: number;
delegatee_login: string;
delegatee_name: string;
}
然后我会迭代从this.http.get(environment.apiUrl + '/api/v1/delegations/' + userid ) 调用中获得的元素并请求用户信息,但我不知道如何迭代结果集。
更新:
目前我可以将委托人数据转储到我的delegations.component.html模板和网页显示:
2 | 97597 | 5197
4 | 97597 | 9757
我要显示的是:
2 | Sam Smith (ssmith) | Lisa Butts (lbutts)
4 | Sam Smith (ssmith) | Bill Fatlips (bfatlips)
我的delegations.component.html很简单:
<ul class="delegations">
<li *ngFor="let delegation of delegations" [class.selected]="delegation === selectedDelegation" (click)="onSelect(delegation)">
<span class="badge">{{delegation.id}}</span> | {{delegation.delegator}} | {{delegation.delegatee}}
</li>
</ul>
这几乎就是他们在 Heroes Angular 中的内容:https://angular.io/tutorial/
【问题讨论】:
-
所以基本上你需要显示你从 API 获得的数据?
-
我得到的数据只是数据库记录ID。我需要使用这些 id 来查找实际的用户名,而不仅仅是他们的 db 记录的 id。
-
很抱歉,我不明白“”是什么意思。我需要使用这些 id 来查找实际的用户名,而不仅仅是他们的 db 记录的 id。”
-
对不起。我将更新我的问题,以更清楚地说明我想要做什么。
-
您也可以发布您的 HTML 文件吗?
标签: angular