【发布时间】:2015-11-25 21:16:37
【问题描述】:
我在 EmberJS 中使用我的 application.hbs 模板,并努力创建一个由模型内容填充的动态下拉菜单。我的路线/模型定义如下:
export default Ember.Route.extend({
model() {
return Ember.RSVP.hash({
dictionaries: ['One', 'Two', 'Three'],
test: 'Value'
});
}
});
在我的模板中,如果我使用{{model.test}},那么它会成功打印"Value"。 但是:当我尝试使用 model.dictionaries 的值构建列表时,两次尝试都失败了,尽管不同。
这个方法:
{{#each model.dictionaries}}
<li><a href="#">{{this}}</a></li>
{{else}}
<li><a href="#" style="font-style: italic;">No values</a></li>
{{/each}}
构建一个包含 3 个条目的列表,但它们的内容是:
<li><a href="#">(generated application controller)</a></li>
<li><a href="#">(generated application controller)</a></li>
<li><a href="#">(generated application controller)</a></li>
如果我尝试为每个项目分配一个名称:
{{#each dict in model.dictionaries}}
<li><a href="#">{{dict}}</a></li>
{{else}}
<li><a href="#" style="font-style: italic;">No values</a></li>
{{/each}}
然后显示no值,结果是:
<li><a href="#" style="font-style: italic;">No values</a></li>
我在尝试迭代模型提供的数组时犯了什么错误?
【问题讨论】:
-
您的
{{else}}对应的{{#if}}在哪里? -
{{else}}会在被迭代的数组中没有项目时自动执行:handlebarsjs.com/builtin_helpers.html
标签: javascript ember.js handlebars.js