Les Angular 2 tutoriels que j'ai lus placent les variables directement dans le fichier app.component.ts. Par exemple var BAR
ci-dessous, qui extrait les données via le {Foo}
interface.
import {Component} from 'angular2/core';
import {Foo} from './foo';
@Component({
etc.
});
export class AppComponent {
bar = BAR;
}
var BAR: Foo[] = [
{ 'id': 1 },
{ 'id': 2 }
];
Cependant, j'ai les données pour BAR dans un fichier JSON local. Je ne pense pas que {HTTP_PROVIDER} soit nécessaire. Comment pourrais-je obtenir les données JSON à partir du fichier externe?
Créer un fichier avec ce contenu
export const BAR= [ { 'id': 1 }, { 'id': 2 } ];
enregistrez-le sous BarConfig.ts
ou quelque chose comme
l'utiliser plus tard comme suit
import { BAR } from './BarConfig'; let bar= BAR;
ou encore mieux, utilisez BAR
directement où vous en avez besoin
HTTP_PROVIDER
est nécessaire si vous souhaitez charger un fichier à l'aide de http.
Voici un exemple de chargement d'un fichier json local via http:
this.result = {friends:[]};
this.http.get('./friends.json').map((res: Response) => res.json()).subscribe(res => this.result = res);
Plus de détails ici: http://www.syntaxsuccess.com/viewarticle/angular-2.0-and-http
Mettez simplement votre fichier .json dans votre dossier statique (/ assets si vous utilisez le angular cli) et cela devrait fonctionner.
La meilleure option est de créer un fichier json et de stocker les détails json dans le fichier et d'appeler ce fichier en utilisant comme ci-dessous.
Si vous utilisez angular-cli Conservez le fichier json dans le dossier Assets (parallèle au répertoire app)
return this.http.get('<json file path inside assets folder>.json'))
.map((response: Response) => {
console.log("mock data" + response.json());
return response.json();
}
)
.catch(this.handleError);
}
Remarque: ici, il vous suffit de donner un chemin dans le dossier des actifs comme assets/json/oldjson.json, puis vous devez écrire un chemin comme /json/oldjson.json
Si vous utilisez Webpack, vous devez suivre la même structure dans le dossier public ci-dessus, son dossier d'actifs similaire.
Vous pouvez utiliser le fournisseur Http dans angular2
Assurez-vous que vous placez votre fichier json local dans le dossier www.
getLocalFile(){
return this.http.get('./localFileName.json').
map(res => res.json());
}
Cela vous renverra le fichier JSON local.