【发布时间】:2017-03-28 18:42:11
【问题描述】:
我不确定我的代码中缺少什么,但目前我在运行它时没有出现任何错误,但我也没有看到我期望的结果。我有一个 json 文件,我正在将其加载到一个数组中,并希望遍历该数组并将其部分数据显示到页面上。
这是我目前所拥有的:
服务文件
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
@Injectable()
export class AddressDataService{
addressData: Array<any>;
constructor(private http:Http){ }
getAddressData(){
return this.http.get('./api/addressData.json')
.map((res:Response) => res.json());
}
}
JSON 文件
[{
"type": "home",
"id": 1
}, {
"type": "apartment",
"id": 2
}, {
"type": "homeless",
"id": 3
}]
组件文件
import { Http } from '@angular/http';
import { AddressDataService } from './address.service';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
@Component({
selector: 'my-app',
templateUrl: '....',
styleUrls: ['./styles.css'],
providers: [AddressDataService]
})
constructor(private addressDataService: AddressDataService) {}
addressData = [];
getAddressData() {
this.addressDataService.getAddressData()
.subscribe(data => this.addressData = data);
}
HTML 文件
<div *ngFor="let addressDetail of addressData">
{{addressDetail.type}}
</div>
我这样做对吗?
【问题讨论】:
-
你什么时候为组件调用
getAddressData? -
@ExplosionPills 既然你已经引起了我的注意,我实际上并没有看到我在我的组件中调用了
getAddressData- 我会在我必须创建的 oninit 函数中这样做吗? -
我认为
ngOnInit会是个不错的选择
标签: javascript jquery json angular