【发布时间】:2018-08-01 01:10:44
【问题描述】:
我正在尝试从服务加载一些数据,该服务在我在控制台中测试它时工作,它正确显示所需的数组,但是当从我的组件调用服务的相同方法时(我需要渲染数据)它只是在控制台中显示 [object Object].... 而在组件本身上没有任何内容。
仅供参考:正在使用的提供程序('/api/departement')正常工作,因为数据可以显示在控制台中(来自服务本身的数据)。
这是我的代码:
Department.ts:
export class Departement{
public code_dep:String;
public lib_dep_AR:String;
public lib_dep_FR:String;
public countm:number;
}
Departement.service.ts
import { Departement} from './departement';
import { Http,Headers } from '@angular/http';
import 'rxjs/add/operator/toPromise';
import { Injectable } from '@angular/core';
@Injectable()
export class DepartementService{
constructor(private http:Http){}
private headers = new Headers({'Content-type':'application/json'});
private depUrl = '/api/departement';
getAllDeps():Promise<Departement[]>{
return this.http.get(this.depUrl + "/allDeparts").toPromise().
then(response=>response.json() as Departement[]);
}
// etc
}
displaying.component.ts
export class Displaying implements OnInit {
departements:Departement[];
departement:Departement;
constructor(public depserv:DepartementService,public router:Router) {
}
ngOnInit() {
this.depserv.getAllDeps().then(dep =>
{ this.departements = dep;
});
//etc
}
我想在哪里渲染结果
<select name="budget" >
<option>my results down here</option>
<option *ngFor="let x of departements">{{x.lib_dep_FR}}</option>
</select>
通过转到 Observable 界面修复
Department.service.ts
private extractData(res:Response) {
let body = res.json();
return body || [];
}
getData():Observable<Departement[]>{
return this.http.get(this.depUrl+"/allDeparts").map(this.extractData).catch(this.handleError);
}
在 display.component.ts 中赶上结果
ngOnInit(){
this.depserv.getData().subscribe(
dept => this.departements = dept);
}
【问题讨论】:
-
console.log(this.deparments) 在组件内显示什么
-
它显示“未定义”:(@Sajeetharan
-
当我尝试 this.depserv.getAllDeps().then(Departement => { this.departements = Departement; console.log("data : "+Departement); });它显示数据:[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
-
添加 JSON.stringify(console.log(this.deparments));并发布结果
-
结果相同,未定义
标签: angular typescript