我一直在尝试使用http get方法加载Angular 2项目文件夹中的本地json文件。请查看以下示例代码段:
private _productURL = 'api/products/products.json';
getProducts(): Observable<any> {
return this._http.get(this._productURL).map((response : Response) => <IProduct[]> response.json())
.do(data =>console.log(JSON.stringify(data))).catch(this.handleError);
}
现在,当我尝试通过互联网加载它时,它正在运行。但是,当我从浏览器开发人员选项(https://developers.google.com/web/tools/chrome-devtools/network-performance/reference#offline)获取离线复选框时,json会再次停止加载。它开始在控制台中显示关于没有互联网连接的错误,并且没有加载任何东西。
还有其他办法吗?或使用http get..how来做到这一点?
答案 0 :(得分:15)
如果您执行以下操作,则可以导入json
文件:
使用:
创建一个json-typings.d.ts文件declare module "*.json" {
const value: any;
export default value;
}
这是一个wildcard module definition,允许我们在这种情况下导入非javascript文件JSON文件。
您现在应该能够将json文件导入到您的项目中:
import * as products from "./products.json";