2014-08-28 120 views
0

财产 'typeKey' 我有了很多realtionships类型错误:无法读取的不确定

{ 
    username: DS.attr('string'), 
    challenges: DS.hasMany('challenge', {async: true, inverse: 'author'}), 

    trials: DS.hasMany('trial',{async: true, inverse: 'user'}), 
    arenasTried: DS.hasMany('arenaTrial',{async: true, inverse: 'user'}), 

    groups: DS.belongsTo('group',{async: true, inverse: 'founder'}), 
    group: DS.hasMany('group',{async: true, inverse: 'members'}) 
} 

我的'/ API /用户的路线返回

{ 
    users: [{ 
    _id: "53fcd802647d05af65227306" 
    arenasTried: [53fcde1006c57af668f39e49] 
    challenges: [] 
    email: "[email protected]" 
    exp: 1 
    group: null 
    groups: [] 
    role: "student" 
    rp: 0 
    trials: [53fcde1006c57af668f39e4a, 53fcde1006c57af668f39e4b] 
    username: "stud" 
}, ...] 

}

模型用户我得到一个TypeError:无法读取未定义的属性'typeKey'

回答

2

跟踪堆栈跟踪,我开始通过投掷bre未定义值弹出的akpoint。 我注意到它没有发生第一次,并且必须单击几次恢复,因为在异常选项之前缺少停止选项,我不得不计数错误发生前的次数并停止一个值。

每当我看看周围哪些东西让我弄清楚factory.typeKey通常与关系有关,所以我开始查找堆栈跟踪,直到我发现在11750行的key ='groups'时:data[key] = store.recordForId(id.type, id.id); id.type was undefined

我以为第一次也许它与组数组是空的,但挑战也是一个空数组,所以为了实验我改变了JSON响应以仅返回挑战,并且没有错误被抛出。

因为我从另一个问题中得知typeKey错误与ember-data有关,它没有想到我知道它确实必须与我定义组关系的方式有关,并确信足够我注意到,我已经颠倒了团体和团体的定义,除了团体是一个belongsTo而不是一个hasMany的关系之外,我转换了它,并且它工作。

相关问题