在本地项目文件夹中加载JSON时使用angular 2 http offline

时间:2017-04-11 12:02:37

标签: javascript json angular http

我一直在尝试使用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来做到这一点?

1 个答案:

答案 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";