[英]Ember.js template not iterating over {{#each}}
我有一個運行{{#each}}
循環的Ember.js把手模板,以遍歷返回的商店數據。 存儲區中只有一條記錄,因此我希望此代碼可以執行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}}
循環(用於“問題”存儲)正常工作。 任何想法表示贊賞。
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解釋的那樣:
{{#each}}幫助程序會循環訪問集合中的元素。
這意味着您不能循環訪問單個對象,因為它不是一個集合 。 您需要刪除{{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助手
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.