Ember.js TypeError:无法读取属性';摧毁';未定义成员的定义

Ember.js TypeError:无法读取属性';摧毁';未定义成员的定义,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,目前,我将Ember数据1.0.0-beta.14.1与Ember 1.9.1一起使用(使用Ember cli)。不知何故,我的一个收藏不再有效,因为我从旧的余烬数据版本更新 我得到了一个DirectoryModel(用于文件系统)。目录可以有子目录和文件 import DS from 'ember-data'; var DirectoryModel = DS.Model.extend({ ... parent: DS.belongsTo('directory', { as

目前,我将Ember数据1.0.0-beta.14.1与Ember 1.9.1一起使用(使用Ember cli)。不知何故,我的一个收藏不再有效,因为我从旧的余烬数据版本更新

我得到了一个DirectoryModel(用于文件系统)。目录可以有子目录和文件

import DS from 'ember-data';

var DirectoryModel = DS.Model.extend({
    ...

    parent: DS.belongsTo('directory',  { async: true, inverse: 'children' }),

    children: DS.hasMany('directory', { async: true, readOnly: true, inverse: 'parent' }),
    files: DS.hasMany('file', { async: true, readOnly: true })
});
A获得了一个序列化程序来加载hashMany Relationships:

export default ApplicationSerializer.extend({
    normalizePayload: function(payload) {
        payload.directories.forEach(function(directory) {
            directory.links = {
                children: '/link-to-server'),
                files: 'link-to-server')
            };
        });

        return this._super.apply(this,arguments);
    }
});
我的看法是:

//WORKS GREAT
{{#each directory in children itemController="file-directory"}}
    ...
{{/each}}

CREATES ERRORS
{{#each file in files }}
     ...
{{/each}}
不知何故,文件循环最终导致了一个错误。这看起来像一个问题,只是在我的情况下,我只是从服务器加载数据。我不明白我做错了什么,因为孩子们的关系很好。在较旧的版本中,这只起作用,但对于Ember Data 1.0.0-beta.14.1,它不起作用



我在
arrayWillChange
函数中查看了余烬代码,发现
this.\u childview
只是一个空数组。但如果我在控制台中设置断点并执行
this.get('content.content').toArray()
,我会看到一个包含一个元素的数组。不知何故/某个地方,数据似乎不同步…

我收到了相同的错误,我还使用链接加载数据。我意外地发现,将数组包装成

files: function() {
  return this.get('directory.files').map(function(file) { return file; });
}.property('directory.files.@each')
解决了这个问题


不知道它为什么会工作:)

最后,它是Ember Data 1.0.0-beta.14.1中的一个bug。在下一个版本Ember Data 1.0.0-beta.15中解决了这个问题:

我最近遇到了这个错误,因为在组件的布局模板中存在虚拟视图命名冲突。然而,没有更多的背景,就不可能帮助你;考虑编写一个JSB来复制错误。问题是内部的烬数据函数ArayCordNo.Debug有时被错误地触发(参见)。创建映射可能会防止在错误的时间调用此函数。无论如何,最新的灰烬数据版本解决了这个问题。