首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ember extractArray有效负载在应用程序中不可用

Ember extractArray有效负载在应用程序中不可用
EN

Stack Overflow用户
提问于 2015-04-13 20:41:26
回答 1查看 102关注 0票数 1

我正在尝试修改REST序列化程序中的JSON有效负载,以便可以在Ember应用程序中随心所欲地使用它。

这是来自服务器的真实JSON的样子:

代码语言:javascript
复制
{
  "folders": [
    {
      "file_ids": [
        2001, 
        2002, 
        2003
      ], 
      "child_folder_ids": [
        2
      ], 
      "id": 1, 
      "name": "Root folder", 
      "parent_folder_id": null, 
      "parent_folder_ids": []
    }
  ], 
  "related_folders": [
    {
      "file_ids": [], 
      "child_folder_ids": [
        3
      ], 
      "id": 2, 
      "name": "Child folder", 
      "parent_folder_id": 1, 
      "parent_folder_ids": [
        1
      ]
    }
  ]
}

下面是Ember文件夹模型的外观:

代码语言:javascript
复制
export default DS.Model.extend({
  name: DS.attr('string'),
  files: DS.hasMany('file'),
  childFolders: DS.hasMany('folder', {inverse: 'parentFolder'}),
  parentFolders: DS.hasMany('folder'),
  parentFolder: DS.belongsTo('folder', {inverse: 'childFolders'}),
});

childFolders和parentFolders在我从服务器得到的JSON中的related_folders中。基本上这也是文件夹,所以我想使用文件夹模型。我已经尝试修改REST序列化程序中的有效负载,以便相关的文件夹将成为文件夹数组的一部分。

这是我的序列化程序的样子:

代码语言:javascript
复制
export default DS.RESTSerializer.extend({
  extractArray: function(store, type, payload) {
    var rootFolders = payload.folders;
    var childFolders = payload.related_folders;
    var folders = [];

    rootFolders.forEach(function(rootFolder) {
      folders.push(rootFolder);
    });

    childFolders.forEach(function(childFolder) {
      folders.push(childFolder);
    });

    payload = { folders: folders };

    return this._super(store, type, payload);
  }
});

目前,我的文件夹和相关文件夹都作为文件夹存储在存储中,但不知何故,我不能使用控制器或组件中的文件夹属性来在计算属性中使用它们。我想确定哪些文件夹是根文件夹,哪些是子文件夹,然后使用模板中的每个帮助器的把手来显示正确的文件夹。有没有人知道我做错了什么,或者有没有更好的方法来解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2015-04-13 23:08:26

嗯,主要的问题是我没有在folderSerializer中扩展我的applicationSerializer。现在它起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29605617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档