W Angular2 możesz mieć folder/dane/i plik json, a możesz uzyskać do niego dostęp pod adresem localhost: 4200/data/something.json.Angular4: jak uzyskać dostęp do lokalnego json?
Nie jest to już możliwe w Angular4.
Jakieś pomysły, jak je uruchomić?
W Angular2 możesz mieć folder/dane/i plik json, a możesz uzyskać do niego dostęp pod adresem localhost: 4200/data/something.json.Angular4: jak uzyskać dostęp do lokalnego json?
Nie jest to już możliwe w Angular4.
Jakieś pomysły, jak je uruchomić?
można użyć tego kodu
@Injectable()
export class AppServices{
constructor(private http: Http) {
var obj;
this.getJSON().subscribe(data => obj=data, error => console.log(error));
}
public getJSON(): Observable<any> {
return this.http.get("./file.json")
.map((res:any) => res.json())
.catch((error:any) => console.log(error));
}
}
tutaj file.json
jest lokalny plik json.
zobaczyć tutaj także
patrz również changlog kątowego-cli na ścieżce
To właśnie robiłem w Angular2. W Angular4 trasa ./file.json już nie działa. –
@DanNeciu jaki jest błąd, z którym się spotykasz? –
@DanNeciu zobacz także moją Zaktualizowaną odpowiedź –
I zdobione.
W Angular2 miałem folder pod folderem src. W Angular4 musisz mieć go w folderze głównym.
przykład:
Angular2:
korzenia/src/dane/file.json
Angular4:
korzenia/dane/file.json
Możesz umieścić plik gdzie chcesz, tak jak używasz całej ścieżki, a nie ścieżek względnych w twojej prośbie :) – Alex
Oczywiście to możliwe. Załóżmy, że tutaj jest plik json
A oto kod zadzwonić JSON
import { Injectable } from '@angular/core';
import { Http, Headers, Response } from '@angular/http';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/map'
@Injectable()
export class YourService {
constructor(private http: Http) { }
getAdvantageData(){
let apiUrl = './assets/data/api/advantage.json';
return this.http.get(apiUrl)
.map((response: Response) => {
const data = response.json();
return data;
});
}
}
Jaki moduł powinien zostać zaimportowany w module aplikacji po tym? –
@veerendragupta Nie dostałem twojego pytania całkowicie. Proszę trochę rozwinąć. –
byłem stoi ten sam problem, gdzie mój Obserwowalne kątowa serwis został znajdujący się wewnątrz "src/app /" i próbował załadować lokalny plik JSON. Próbowałem umieścić plik JSON w tym samym folderze aplikacji, w nowym folderze "api", użyłem różnych rodzajów krewnych/tras absolutnych, ale to nie pomogło i dostałem błąd 404. W momencie, w którym umieściłem go w folderze "aktywów" ... BAM !!! zadziałało. Myślę, że jest więcej do niej ...
Może ten link pomoże ...
To działa! ale dlaczego? – mok
Myślę, że webpack, moduł bundler, pakuje domyślnie wszystko z folderu asset. –
Dzieje się tak dlatego, że wszystko, co podano w tablicy 'assets' w' angular-cli.json' zostaje skopiowane i udostępnione, dzięki czemu jest dostępne w środowisku wykonawczym. Zobacz https://github.com/angular/angular-cli/wiki/stories-asset-configuration – Nerman
Można użyć "wymagają" zbyt;
let test = require('./test.json');
dzięki za odpowiedź –
kątowa4 ???co to nigdy o nim nie słyszało? – AurA
@AurA zobacz tutaj, co jest obecnie angular2 http://stackoverflow.com/a/43224781/5043867;) –
fajne! dzięki za informację, – AurA