Я пытался получить JSON из внутреннего файла JSON в угловых.
с этой услугой (village.service):
import { Injectable, OnInit } from '@angular/core';
import { Http, Response } from '@angular/http';
import { environment } from '../../environments/environment';
import { Observable } from 'rxjs'
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
@Injectable()
export class RecordsService {
data: any;
constructor(private http: Http) { }
getVillages(id) {
return this.http.get('../assets/data/villages.json')
.map(data => {
this.data = data.json();
return data.json();
}, err => {
if (err) {
return err.json();
}
});
}
}
и под commponet я положил:
ngOnInit() {
this.getVillages();
....
}
и здесь, чтобы загрузить как цепочку выпадающего
onSubDistrictSelected(subDistrictId: number) {
if (subDistrictId) {
this.onLoading.emit(true);
this.customer.subDistrict = this.subDistricts.filter(c => (c.id == subDistrictId))[0].name;
this.customer.sdid = subDistrictId;
this.customer.subDistrictId = subDistrictId;
this.villages = this.getVillages().filter((item) => {
return item.subDistrictId === Number(subDistrictId)
});
this.onLoading.emit(false);
}
}
Я получил сообщение об ошибке при компиляции: this.getVillages не является функцией, но работает правильно, если я поместил значение json в файл компонента:
getVillages() {
return [
{ json_data}
]
}
Чего я хочу добиться, так это того, что я хочу использовать файл JSon, а не помещать его непосредственно в commponet.
Спасибо