簡體   English   中英

Ember.js模板未在{{#each}}上進行迭代

[英]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檢查器位於數據存儲中:

Ember.js檢查器數據

頁面上還有其他{{#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM