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

Ember.js Ember extractArray有效负载在应用程序中不可用,ember.js,ember-data,ember-cli,serialization,Ember.js,Ember Data,Ember Cli,Serialization,我正在尝试在REST序列化程序中修改JSON负载,以便在我的Ember应用程序中使用它 这就是来自服务器的真正JSON的样子: { "folders": [ { "file_ids": [ 2001, 2002, 2003 ], "child_folder_ids": [ 2 ], "id": 1, "name": "Root folder

我正在尝试在REST序列化程序中修改JSON负载,以便在我的Ember应用程序中使用它

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

{
  "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
      ]
    }
  ]
}
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);
  }
});
以下是余烬文件夹模型的外观:

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中的相关_文件夹中。基本上这也是文件夹,所以我想使用文件夹模型。我已尝试修改REST序列化程序中的负载,以便相关文件夹将成为文件夹数组的一部分

以下是我的序列化程序的外观:

{
  "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
      ]
    }
  ]
}
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);
  }
});

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

主要问题是我没有在folderSerializer中扩展我的applicationSerializer。现在它开始工作了