javascript - 一个关于 ember.js 的 serializer 问题
黄舟
黄舟 2017-04-10 15:16:43
[JavaScript讨论组]

ember 的 REST Adapter 期待的 json (customer/:customer_id)是下面这样的格式的:


{ "customer": { "CustomerID": "ALFKI", "CompanyName": "Alfreds Futterkiste", "ContactName": "Maria Anders", "ContactTitle": "Sales Representative", "id": "b0d16ed0-c901-4ca3-ba41-7fc74c96909f" } }

但是我的服务器的 API 是这样的:

{
        "CustomerID": "ALFKI",
        "CompanyName": "Alfreds Futterkiste",
        "ContactName": "Maria Anders",
        "ContactTitle": "Sales Representative",
        "id": "b0d16ed0-c901-4ca3-ba41-7fc74c96909f"
}

于是我可以这样(在 app/serializers/customer.js 文件里):

  serializeIntoHash: function(data, type, record, options) {
      Ember.merge(data, this.serialize(record, options));
  }

这样就解决问题了。

但是另外一个问题是,我的服务器返回所有 coustomers 的 API 是这样的:

{
    "value": [
        {
        "CustomerID": "ALFKI",
        "CompanyName": "Alfreds Futterkiste",
        "ContactName": "Maria Anders",
        "ContactTitle": "Sales Representative",
        "id": "b0d16ed0-c901-4ca3-ba41-7fc74c96909f"
    },
    {
        "CustomerID": "ANATR",
        "CompanyName": "Ana Trujillo Emparedados y helados",
        "ContactName": "Ana Trujillo",
        "ContactTitle": "Owner",
        "id": "3f8ac226-9f78-42df-b337-0505f69792c3"
    },
    {
        "CustomerID": "ANTON",
        "CompanyName": "Antonio Moreno Taquería",
        "ContactName": "Antonio Moreno",
        "ContactTitle": "Owner",
        "id": "09d31df6-69f4-43e4-9cc6-7faa5b8b5e3b"
    }]
}

我怎样像上面那个 customer/:customer_id 例子一样,把返回所有 customers 的 API
变成 ember 的 /customers 所期待的那样呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
黄舟

在你的app/serializers/customer.js文件中创建下面的方法

extractArray: function(store, typeClass, payload){
    //payload是后台传过来的数据
    //在这里把payload的数据转成ember标准格式。
    payload.customers = payload.value;
    delete(payload.value);
    return this._super.apply(this, arguments)
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号