如何设置ember-cli以获取JSON文件中的值

时间:2017-01-24 11:16:56

标签: json ember.js ember-data ember-cli

如何设置ember-cli以使用键"剩余","成功"来获取值。和#34; deck_id"从以下JSON文件?

我可以在我的控制台>网络> HXR中看到我收到的JSON数据如下所示:

{
   "remaining": 49,
   "success": true,
   "deck_id": "79n773qlsciez",
   "cards": [
      {
         "suit": "HEARTS",
         "image": "http://deckofcardsapi.com/static/img/JH.png",
         "images": {
            "svg": "http://deckofcardsapi.com/static/img/JH.svg",
            "png": "http://deckofcardsapi.com/static/img/JH.png"
         },
         "code": "JH",
         "value": "JACK"
      }
   ]
}

以下是我的其余设置:

//adapters/card.js
import DS from 'ember-data';

export default DS.RESTAdapter.extend({
    host: "https://deckofcardsapi.com",
    namespace: "api/deck/79n773qlsciez/draw/",

    pathForType(){
        return "?count=1";
    }
});

//app/models/card.js

import DS from 'ember-data';

export default DS.Model.extend({

image: DS.attr("string"),
code: DS.attr("string")
});

//app/serializers/card.js
import DS from 'ember-data';

export default DS.RESTSerializer.extend({
     primaryKey: 'code',

});

//app/routes/cards.js

import Ember from 'ember';

export default Ember.Route.extend({
    model() {
    return this.store.findAll("card");
    }
});

最后但并非最不重要

//templates/cards.hbs
<h2>All cards here</h2>

{{suffle-deck}}
{{#each model as |card|}}
<img src="{{card.image}}" alt="">
{{/each}}
{{outlet}}

1 个答案:

答案 0 :(得分:0)

这些卡嵌入在JSON套装表示中。默认情况下,Ember Data会在那里查找标识符。

为了反序列化嵌入式卡,您需要在套装的序列化程序中使用EmbeddedRecordsMixin。这将允许卡片与套装一起被反序列化。