2013-10-24 22 views
1

我已經定義模式是這樣的:如何在Ember.js模板中顯示hasMany記錄?

App.Question = DS.Model.extend({ 
    title: DS.attr('string'), 
    answers: DS.hasMany('App.Answer') 
}); 

App.Answer = DS.Model.extend({ 
    title: DS.attr('string'), 
    wynikid: DS.attr('number') 
}); 

而且從RESTAdapter獲取數據返回這樣的數據:

{ 
    "questions": [ 
     { 
      "id": 77, 
      "title": "O której wstajesz?", 
      "answers": [ 
       { 
        "id": 159, 
        "title": "O godzinie 6", 
        "wynikid": 57 
       }, 
       { 
        "id": 160, 
        "title": "O godzinie 7", 
        "wynikid": 56 
       }, 
       { 
        "id": 161, 
        "title": "O godzinie 12", 
        "wynikid": 55 
       } 
      ] 
     }, 
     { 
      "id": 76, 
      "title": "Kot czy kominiarz?", 
      "answers": [ 
       { 
        "id": 156, 
        "title": "Kocur", 
        "wynikid": 57 
       }, 
       { 
        "id": 157, 
        "title": "Kominiarz", 
        "wynikid": 56 
       }, 
       { 
        "id": 158, 
        "title": "Ani to ani to", 
        "wynikid": 55 
       } 
      ] 
     }, 
     { 
      "id": 75, 
      "title": "Wybierz ulubione imię", 
      "answers": [ 
       { 
        "id": 153, 
        "title": "Bożydar", 
        "wynikid": 57 
       }, 
       { 
        "id": 154, 
        "title": "Aleksander", 
        "wynikid": 56 
       }, 
       { 
        "id": 155, 
        "title": "Andrzej", 
        "wynikid": 55 
       } 
      ] 
     }, 
     { 
      "id": 74, 
      "title": "Wybierz liczbę", 
      "answers": [ 
       { 
        "id": 152, 
        "title": "Liczba 13", 
        "wynikid": 56 
       }, 
       { 
        "id": 151, 
        "title": "Liczba 7", 
        "wynikid": 55 
       }, 
       { 
        "id": 150, 
        "title": "Liczba 1", 
        "wynikid": 57 
       } 
      ] 
     }, 
     { 
      "id": 78, 
      "title": "Ulubiona pora roku", 
      "answers": [ 
       { 
        "id": 162, 
        "title": "To lato", 
        "wynikid": 57 
       }, 
       { 
        "id": 163, 
        "title": "Jesień/Wiosna", 
        "wynikid": 56 
       }, 
       { 
        "id": 164, 
        "title": "To zima", 
        "wynikid": 55 
       } 
      ] 
     } 
    ] 
} 

現在我想acomplish什麼是顯示像這樣的列表:

O której wstajesz? 
O godzinie 6 
O godzinie 7 
... 
Kot czy kominiarz? 
... 

我試過在Ember.js模板使用:

{{#each controller}} 

    {{title}}<br> 

    {{#each answer in answers}} 

    \t{{title}}<br> 

    {{/each}} 

    {{/each}} 

並顯示問題,但答案arent。我在控制檯中沒有任何錯誤,JSONLint也沒有看到JSON的任何問題。

如何使它工作?

我用:

handlebars1.0.0.0.js 燼,1.0.0.0.min.js 燼數據:v0.13-238-gbf84978

回答

0

燼/燼的最新版本-data不支持嵌入式記錄。這是記錄here,但我發現解決方法是非常笨拙,無法讓它自己工作。

也許最好的解決方案是減少答案記錄,以便它與JSON根目錄中的問題記錄一起出現。這當然假設你可以控制你的JSON格式,所以如果不是這樣的話,這個答案不適用。如果您正在使用活動模型串行器,則通過選項embed: :idinclude: true完成。你將有一個什麼樣question_serializer.rb

class QuestionSerializer < ActiveModel::Serializer 
    attributes :id, :title 
    has_many :answers, embed: :id, include: true 
end 

而且也是一個answer_serializer.rb喜歡的東西

class AnswerSerializer < ActiveModel::Serializer 
    attributes :id, :title, :wynikid 
end 

我相信,那麼它應該工作。我剛纔昨天遇到了一個問題,並在其上發佈了一個stackoverflow問題here,但我在今天早些時候發現了我的問題並回答了我自己的問題。我能夠獲得我的JSON的打印輸出,基本上就像您試圖處理您的句柄代碼一樣!

編輯:語法。

相關問題