【问题标题】:Ember RESTAdapter with custom JSON format具有自定义 JSON 格式的 Ember RESTAdapter
【发布时间】:2014-08-19 19:05:16
【问题描述】:

我目前喜欢深入研究 Ember 并学习完整的前端 MVC 解决方案。

目前,我有点难以从我们的 API 获取数据,因为它不符合 Ember 适配器所要求的标准。目前,由于第三方应用程序的依赖关系,我们的团队无法更改 API / JSON 响应的结构。

RESTAdapter 正在寻找这样的 JSON:

{
  'episodes' : [
        {
            id : '1',
            title : 'my first title'
        }
    ]
}

不幸的是,我们得到的只是一个数组,每个情节都作为一个对象,即它不能是一个具有对象数组值的键。

[
    {
        id : 1,
        title : 'my first title'
    },
    {  
        id : 2,
        title : 'my second title'
    }
]

谁能提供有关如何扩展 DS.RESTAdapter 以遵循这种格式的帮助?

同样,我们的服务器开发人员无法更改 API,因此我们必须按原样获取 JSON 响应。

谢谢

【问题讨论】:

    标签: javascript json model-view-controller ember.js


    【解决方案1】:

    在您的序列化程序中覆盖 extractArray。然后,您可以修改有效负载以匹配 ember 数据正在查找的内容。

    App.ApplicationSerializer = DS.RESTSerializer.extend({
      extractArray: function(store, type, payload){
        var plural = Ember.String.pluralize(type.typeKey),
            fixed = {};
        fixed[plural] = payload;
        return this._super(store, type, fixed);
      }
    });
    

    示例:http://emberjs.jsbin.com/OxIDiVU/953/edit

    【讨论】:

    • 谢谢 - 这很有魅力。也感谢 Bin,让我更好地了解引擎盖下发生的事情!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    相关资源
    最近更新 更多