Angular 2つのチュートリアル私はapp.component.tsファイルで場所変数を直接読みました。例えばvar BAR
以下、{Foo}
インターフェイス。
import {Component} from 'angular2/core';
import {Foo} from './foo';
@Component({
etc.
});
export class AppComponent {
bar = BAR;
}
var BAR: Foo[] = [
{ 'id': 1 },
{ 'id': 2 }
];
ただし、ローカルJSONファイルにはBARのデータがあります。 {HTTP_PROVIDER}が必要だとは思わない。外部ファイルからJSONデータを取得するにはどうすればよいですか?
このコンテンツでファイルを作成する
export const BAR= [ { 'id': 1 }, { 'id': 2 } ];
BarConfig.ts
などの名前で保存します
後で次のように使用します
import { BAR } from './BarConfig'; let bar= BAR;
さらに良いことに、必要な場所で直接BAR
を使用します
HTTP_PROVIDER
は、httpを使用してファイルをロードする場合に必要です。
Httpを介してローカルjsonファイルをロードする方法の例を次に示します。
this.result = {friends:[]};
this.http.get('./friends.json').map((res: Response) => res.json()).subscribe(res => this.result = res);
詳細はこちら: http://www.syntaxsuccess.com/viewarticle/angular-2.0-and-http
Justeは、.jsonファイルを静的フォルダー(angular cli)を使用している場合は/ assets)に配置し、機能するはずです。
最適なオプションは、jsonファイルを作成し、jsonの詳細をファイル内に保存し、以下のようにそのファイルを呼び出すことです。
Angular-cliを使用している場合jsonファイルをAssetsフォルダー(app dirと平行)ディレクトリー内に保持します
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);
}
注:ここでは、assets/json/oldjson.jsonのようなassetsフォルダー内のパスのみを指定する必要があり、次に/json/oldjson.jsonのようなパスを記述する必要があります
Webpackを使用している場合、パブリックフォルダー内の上記と同じ構造に従う必要があります。これはアセットフォルダーに似ています。
Angular2でHttpプロバイダーを使用できます
確認してくださいローカルjsonファイルをwwwフォルダーに配置します。
getLocalFile(){
return this.http.get('./localFileName.json').
map(res => res.json());
}
これにより、ローカルJSONファイルが返されます。