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

Kus*_*ver 5 javascript json http angular

我一直在尝试使用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);
    }
Run Code Online (Sandbox Code Playgroud)

现在当我试图通过互联网加载它时,它正在工作.但是,当我从浏览器开发者选项(https://developers.google.com/web/tools/chrome-devtools/network-performance/reference#offline)查看离线复选框时,json会再次停止加载.它开始显示我在控制台中的错误没有互联网连接,并没有加载任何东西.

有没有其他方法可以做到这一点?或使用http get..how来做到这一点?

Ofe*_*man 16

json如果您执行以下操作,则可以导入文件:

使用以下命令创建一个json-typings.d.ts文件:

declare module "*.json" {
    const value: any;
    export default value;
}
Run Code Online (Sandbox Code Playgroud)

这是一个通配符模块定义,允许我们在这种情况下导入非javascript文件JSON文件.

您现在应该能够将json文件导入到您的项目中:

import * as products from "./products.json";
Run Code Online (Sandbox Code Playgroud)