각도 서비스 hero.service.ts에서 json 데이터를 가져 오려고합니다. 가짜 http API inMemoryDataService를 사용할 때 모든 것이 잘 작동하고 in-memory-data.service.ts 파일에서 json 데이터를 가져옵니다. 그러나 실제 json 파일에서 데이터를 가져 오려고하면 작동하지 않으며 브라우저에 'collection not found'오류가 표시됩니다.AngularJS 2 : json 파일에서 데이터를 가져 오지 못함
hero.service.ts :
import { Injectable } from '@angular/core';
import { Headers, Http , Response} from '@angular/http';
import 'rxjs/add/operator/toPromise';
import { Hero } from './hero';
@Injectable()
export class HeroService {
private heroesUrl = 'app/fakeListOfHeroes'; // URL to web api
//private heroesUrl = 'app/heroes.json'; // URL to JSON file
constructor(private http: Http) { }
getHeroes(): Promise<Hero[]>
{
return this.http.get(this.heroesUrl)
.toPromise()
.then(response => response.json().data)
.catch(this.handleError);
}
private handleError(error: any)
{
console.error('An error occurred', error);
return Promise.reject(error.message || error);
}
}
hero.service.ts : 여기
(모든 3 개 개의 파일이 응용 프로그램/폴더에있는) 파일의 내용입니다export class InMemoryDataService {
createDb() {
let fakeListOfHeroes = [
{id: 11, name: 'Mr. Nice'},
{id: 12, name: 'Narco'},
{id: 13, name: 'Bombasto'},
{id: 14, name: 'Celeritas'},
{id: 15, name: 'Magneta'},
{id: 16, name: 'RubberMan'},
{id: 17, name: 'Dynama'},
{id: 18, name: 'Dr IQ'},
{id: 19, name: 'Magma'},
{id: 20, name: 'Tornado'}
];
return {fakeListOfHeroes};
}
}
heroes.json :
브라우저에서{
"data": [{
"id": 11,
"name": "Mr. Nice"
}, {
"id": 12,
"name": "Narco"
}, {
"id": 13,
"name": "Bombasto"
}, {
"id": 14,
"name": "Celeritas"
}, {
"id": 15,
"name": "Magneta"
}, {
"id": 16,
"name": "RubberMan"
}, {
"id": 17,
"name": "Dynama"
}, {
"id": 18,
"name": "Dr IQ"
}, {
"id": 19,
"name": "Magma"
}, {
"id": 20,
"name": "Tornado"
}]
}
오류 : 어떤 도움을 주시면 감사하겠습니다
. 감사!
당신이 JSON 파일에 대한 URL을 열려고 수 : 문제 main.ts 파일에서 그 라인을 해결 언급? 그것이 정말로 거기에 있는지 단지 알기 위해! – rinukkusu
@rinukku : 네, 괜찮습니다. json이 있습니다. http://imgur.com/K9IzTim – tkarra
오류 메시지는 URL이 'null'이라고 표시합니다. 이상 하네. 아마도 http://stackoverflow.com/questions/37517183/how-do-i-get-the-absolute-path-of-the-current-page-in-angular-2/37517504#37517504와 같은 것을 사용해야 할 것입니다. –