什么是 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')
}
});
使用静态数据初始化模型是否有更好的做法?
- 您可以安装
ember-cli-json-module
然后,应用程序或测试中的任何 JSON 文件都将转换为您可以导入的 ES6 模块,如下所示:
import myFixture from 'my-app/tests/fixtures/my-fixture';
您真的不应该编辑 dist/
文件夹 - 那是 Ember 粘贴编译代码的地方。
如果你的静态数据只在一个地方使用,将它放在它作为const
使用的地方会更直接。在这种特定情况下,这是 UI 代码,可能属于控制器。
模型挂钩最适合加载每次您访问该路线时可能发生变化的数据 - 可能来自后端。
如其他回答中所述,您不应该编辑 dist/
文件夹中的文件。
您可以执行以下操作:
- 在
app/
下创建一个新文件夹。假设 app/constants/
在该文件夹中创建新文件 menu.js
:
export default {
"menuItems": [{
"name": "Shows",
"route": "shows"
}, {
"name": "Podcasts",
"route": "podcasts"
}]
};
在任何其他文件中将其导入为 import menu from 'project-name/constants/menu';
。而且我不认为你需要一个模型,你可以只使用你导出的东西。
我有一些永远不会改变的静态数据,比如菜单项后面的数据
{
"menuItems": [{
"name": "Shows",
"route": "shows"
}, {
"name": "Podcasts",
"route": "podcasts"
}]
}
我在 /dist
文件夹中创建了一个 json 文件,在应用程序路径中,我从
export default Route.extend({
model() {
return $.getJSON('/static/model.json')
}
});
使用静态数据初始化模型是否有更好的做法?
- 您可以安装
ember-cli-json-module
然后,应用程序或测试中的任何 JSON 文件都将转换为您可以导入的 ES6 模块,如下所示:import myFixture from 'my-app/tests/fixtures/my-fixture';
您真的不应该编辑 dist/
文件夹 - 那是 Ember 粘贴编译代码的地方。
如果你的静态数据只在一个地方使用,将它放在它作为const
使用的地方会更直接。在这种特定情况下,这是 UI 代码,可能属于控制器。
模型挂钩最适合加载每次您访问该路线时可能发生变化的数据 - 可能来自后端。
如其他回答中所述,您不应该编辑 dist/
文件夹中的文件。
您可以执行以下操作:
- 在
app/
下创建一个新文件夹。假设app/constants/
在该文件夹中创建新文件
menu.js
:export default { "menuItems": [{ "name": "Shows", "route": "shows" }, { "name": "Podcasts", "route": "podcasts" }] };
在任何其他文件中将其导入为
import menu from 'project-name/constants/menu';
。而且我不认为你需要一个模型,你可以只使用你导出的东西。