gpt4 book ai didi

javascript - Ember.js 模板不迭代 {{#each}}

转载 作者:行者123 更新时间:2023-11-30 16:02:55 25 4
gpt4 key购买 nike

我有一个运行 {{#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 检查器位于数据存储中:

Ember.js Inspector Data

页面上还有其他 {{#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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com