我读过的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数据?
答案 0 :(得分:11)
使用此内容创建文件
export const BAR= [
{ 'id': 1 },
{ 'id': 2 }
];
将其保存为BarConfig.ts
或类似
稍后使用如下
import { BAR } from './BarConfig';
let bar= BAR;
甚至更好,直接在您需要的地方使用BAR
答案 1 :(得分:5)
HTTP_PROVIDER
以下是如何通过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
答案 2 :(得分:4)
Juste将您的.json文件放在静态文件夹中(如果您使用的是角度cli,则为/ assets),它应该可以正常工作。
答案 3 :(得分:3)
最好的选择是创建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之类的资源文件夹中给出路径,然后你需要编写像/json/oldjson.json这样的路径
如果你使用webpack,那么你需要在公共文件夹中遵循相同的结构,类似于资产文件夹。
答案 4 :(得分:1)
您可以在angular2
中使用 Http 提供程序确保将本地json文件放在www文件夹中。
getLocalFile(){
return this.http.get('./localFileName.json').
map(res => res.json());
}
这将返回本地JSON文件。