什么是 ember js 静态数据最佳实践

what are ember js static data best practices

我有一些永远不会改变的静态数据,比如菜单项后面的数据

{
  "menuItems": [{
    "name": "Shows",
    "route": "shows"
  }, {
    "name": "Podcasts",
    "route": "podcasts"
  }]
}

我在 /dist 文件夹中创建了一个 json 文件,在应用程序路径中,我从

这样的文件创建了一个模型
export default Route.extend({
  model() {
    return $.getJSON('/static/model.json')
  }
});

使用静态数据初始化模型是否有更好的做法?

  1. 您可以安装 ember-cli-json-module 然后,应用程序或测试中的任何 JSON 文件都将转换为您可以导入的 ES6 模块,如下所示: import myFixture from 'my-app/tests/fixtures/my-fixture';

您真的不应该编辑 dist/ 文件夹 - 那是 Ember 粘贴编译代码的地方。

如果你的静态数据只在一个地方使用,将它放在它作为const使用的地方会更直接。在这种特定情况下,这是 UI 代码,可能属于控制器。

模型挂钩最适合加载每次您访问该路线时可能发生变化的数据 - 可能来自后端。

如其他回答中所述,您不应该编辑 dist/ 文件夹中的文件。

您可以执行以下操作:

  1. app/ 下创建一个新文件夹。假设 app/constants/
  2. 在该文件夹中创建新文件 menu.js:

    export default {
      "menuItems": [{
        "name": "Shows",
        "route": "shows"
      }, {
        "name": "Podcasts",
        "route": "podcasts"
      }]
    };
    
  3. 在任何其他文件中将其导入为 import menu from 'project-name/constants/menu';。而且我不认为你需要一个模型,你可以只使用你导出的东西。