0
我尝试从API获取成员时出现问题。显然,请求正常工作,但角度未能将结果获取到成员对象或类似的东西。我真的不明白它引发的错误。Angular - 具有承诺的问题无法找到类型为“object”的不同支持对象'[object Object]'
到目前为止,它是一个基本的应用程序,只需从API中获取成员并将其显示在内联模板中即可。
这里是我的服务:
import { Headers, Http, Response } from '@angular/http';
import { MEMBERS } from './../member-mock';
import { Member } from './../member';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class MemberService {
private apiUrl = '../api/members';
private headers = new Headers({'Content-Type': 'application/json'});
constructor(private http: Http){}
members : Member[] = [];
getMembers(){
return this.http.get(this.apiUrl)
.toPromise()
.then(response => response.json().data as Member[])
.catch(this.handleError);
}
}
而且我的组件
import { ModalService } from './../Services/modal-service';
import { OrderService } from './../Services/order-service';
import { Member } from './../member';
import { MemberService } from './../Services/member-service';
import { Component } from '@angular/core';
@Component({
selector: 'member-pane',
template: `
<div class='order-pane'>
<h2>Membres</h2>
<ul class="">
<li class="membre" *ngFor="let member of members">
<b>{{member.prenom}} {{member.nom}}
</li>
</ul>
</div>
`,
styleUrls: ['./member-pane.css']
})
export class MemberPaneComponent {
constructor(private memberService: MemberService) { }
members = this.memberService.getMembers();
}
而且它提高了下面的错误,我不明白: Error screenshot
最后这里是JSON由API返回:
[
{
"id": 1086,
"prenom": "Mick",
"nom": "Mal",
"amount": 0,
"total": 0
},
{
"id": 1087,
"prenom": "Loic",
"nom": "Pal",
"amount": 0,
"total": 0
}
]
还在磨砺我的angular2 +技能,但是这条线扰了我'resp onse => response.json()。data as Member []'。我觉得你正在包装已经是一个阵列。如果你只有'response => response.json()。data'?这看起来与1.x中的$ http的response.data最接近.. – Brian
另外,我已经将angularjs标记更改为angular,因为AngularJS用于1.x straing,而AngularJS用于2+。 (AngularJS:https://stackoverflow.com/tags/angularjs/info),(Angular:https://stackoverflow.com/tags/angular/info)。 – Brian