作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个运行 {{#each}}
循环的 Ember.js handlebars 模板来迭代返回的商店数据。商店中只有一条记录,所以我希望这段代码被执行 1 次。但是,它根本没有执行,我似乎无法弄清楚为什么。这是 .hbs 代码:
{{#each model.framework as |framework|}}
{{#paper-item noink=true}}
<p class="question">
{{paper-input label="Question" required=true value=detail}}
</p>
<p class="option">
{{#paper-radio value="text" selected=type}}Text{{/paper-radio}}
{{#paper-radio value="radio" selected=type}}Options{{/paper-radio}}
{{#paper-button action=(action "newQuestion" framework.id) raised=true}}Add Question{{/paper-button}}
</p>
{{/paper-item}}
{{/each}}
这个 {{#each}}
循环应该在我的商店(从我的 routes.js 文件中为这个页面)呈现这个查询的数据:
model(params) {
var id = params.framework_id;
return Ember.RSVP.hash({
question: this.store.query('question', {orderBy: 'framework', equalTo: id}),
framework: this.store.find('framework', id)
})
}
而且我知道存储的路由和查询工作正常,因为我尝试迭代的框架通过 Ember 检查器位于数据存储中:
页面上还有其他 {{#each}}
循环(针对“question”商店)工作正常。任何想法表示赞赏。
最佳答案
model.framework
是您使用 store.find
从后端检索的单个对象:
return Ember.RSVP.hash({
question: this.store.query('question', {orderBy: 'framework', equalTo: id}),
framework: this.store.find('framework', id) // <-- This returns an object
})
然而,作为Ember Docs解释:
The {{#each}} helper loops over elements in a collection.
这意味着您不能遍历单个对象,因为它不是集合。您需要删除 {{each}}
帮助程序并使用 model.framework
而不是 framework
:
{{#paper-item noink=true}}
<p class="question">
{{paper-input label="Question" required=true value=detail}}
</p>
<p class="option">
{{#paper-radio value="text" selected=type}}Text{{/paper-radio}}
{{#paper-radio value="radio" selected=type}}Options{{/paper-radio}}
{{#paper-button action=(action "newQuestion" model.framework.id) raised=true}}Add Question{{/paper-button}}
</p>
{{/paper-item}}
如果你想遍历对象属性,你可以查看 each-in helper
关于javascript - Ember.js 模板不迭代 {{#each}},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37442632/
我是一名优秀的程序员,十分优秀!