1

我有这样定义的模型:

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
                }
            ]
        }
    ]
}

现在我想要完成的是显示这样的列表:

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}}

并显示问题,但没有答案。我在控制台中没有任何错误,JSONLint 也没有看到 JSON 有任何问题。

如何让它发挥作用?

我用:

handlebars1.0.0.0.js ember-1.0.0.0.min.js ember 数据:v0.13-238-gbf84978

4

2 回答 2

0

最新的 ember 不支持开箱即用的嵌入记录。但你可以手动解析嵌入

http://emberjs.jsbin.com/AkovAPu/4 - 示例(如果 localhost:8888/questions 返回您的 json - { "questions": [...)

http://emberjs.jsbin.com/AkovAPu/4/edit - 源代码(查看 extractArray)

于 2013-10-24T23:56:50.940 回答
0

最新版本的 ember/ember-data 不支持嵌入记录。这在此处进行了记录,但我发现解决方法非常笨拙,无法自己使用。

也许最好的解决方案是旁加载您的答案记录,以便它出现在您的 JSON 根目录中的问题记录旁边。这当然是假设您可以控制 JSON 格式,因此如果不是这种情况,则此答案不适用。如果您使用的是 active-model-serializers,则可以通过选项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问题,但我今天早些时候发现了我的问题并回答了我自己的问题。我能够以与您尝试使用车把代码相同的方式打印出我的 JSON!

编辑:语法。

于 2013-10-24T23:32:33.130 回答