如何从 aurelia 框架中的 JSON 文件中获取数据?

Ĭsα*_*öss 2 aurelia

我正在尝试使用aurelia-fetch-client从外部 JSON 文件中获取数据,但它给出了 404 not found 错误。

我已尝试实施官方文档建议的基本设置。

这是我的代码:

import {HttpClient } from 'aurelia-fetch-client';

let httpClient = new HttpClient();
export class ChangeRequest {
constructor(){
  httpClient.fetch('sample.json')
    .then(response => response.json())
    .then(res => {
      console.log(res);
 }
}
}
Run Code Online (Sandbox Code Playgroud)

我应该得到 JSON 数据的结果,但出现以下错误:

错误

这是我使用创建的文件夹结构 aurelia-cli

正如您所看到的,sample.json是在src文件夹中,我尝试将它放在src/Assets文件夹中,但结果相同。

Ash*_*ant 5

鉴于您使用的是 Webpack,您有两种选择:

  • 将文件保存在src目录中并使用require语句加载它
  • 将文件移动到文件static夹并使用fetch.

这是一个示例的屏幕截图:

显示使用 require 和 fetch 加载 json 文件的屏幕截图

和源代码:

export class App {
  async attached() {
    const importedData = require('./in-src.json');

    const fetchedData = await fetch('in-static.json')
      .then(response => response.json());

    console.log('JSON loaded via import', importedData);
    console.log('JSON loaded via fetch', fetchedData);
  }
}
Run Code Online (Sandbox Code Playgroud)

最后,应用运行时的控制台:

在此处输入图片说明

  • Stack Overflow 是一个很好的地方,可以帮助您解决在开发新软件时遇到的问题。这不是贬低评论的地方。您从这里和 GitHub 上的三位 Aurelia 核心团队成员那里获得了免费技术支持(您明确忽略了我们问题模板中的说明)。您提出的问题格式不正确,因为它没有提供足够的信息来回答您的问题(我必须阅读您对答案的评论才能意识到您正在使用 Webpack 和 Aurelia CLI)...(续)\ (2认同)
  • (续)在获得免费支持后,即使您忽略了支持说明,您还是选择贬低我们的文档和框架本身。由志愿者开发的免费提供给您的框架。想想你的评论听起来多么有资格,并考虑像你这样的评论是驱使开发人员远离开源开发的评论类型。下一次,也许可以考虑不发表这样的评论。 (2认同)