我正在使用Ember CLI。
我有这种格式的JSON:
公开/资产/ data.json
{
"important": [
{
"name": "first",
"value": 10
},
{
"name": "second",
"value": 10
},
...
],
"unimportant1": {
...
},
"unimportant2": {
...
}
...
}
我想导入"important"
以便在模型中使用。
我尝试了以下方法:
应用/路由/ important.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return Ember.$.getJSON("/assets/data.json").important;
}
});
控制台日志不会显示任何错误。
我想在"important"
中显示这些项目。
我尝试了以下方法:
应用/模板/ important.hbs
{{#each model as |important|}}
<div>
{{important.name}}{{important.value}}
</div>
{{/each}}
但是,没有显示任何内容。如何让它们显示?
我注意到,如果我将数组复制并粘贴到return语句中,则项目会按预期显示:
应用/路由/ important.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return [
{
"name": "first",
"value": 10
},
{
"name": "second",
"value": 10
},
...
];
}
});
非常感谢任何帮助。
答案 0 :(得分:0)
Ember.$.getJSON("/assets/data.json");
会返回一个承诺,但Ember.$.getJSON("/assets/data.json").important;
不会返回承诺。它只是undefined
。
在模型钩子中,只需返回承诺:
model() {
return Ember.$.getJSON("/assets/data.json");
}
然后在您的模板中,使用它:
{{#each model.important as |important|}}
<div>
{{important.name}}{{important.value}}
</div>
{{/each}}