假设某些DS.Model类Leaf
属于类Tree
,而一个Tree
有多个leaves
,即:
App.Leaf = DS.Model.extend({
tree: DS.belongsTo('App.Tree'),
});
App.Tree = DS.Model.extend({
leaves: DS.hasMany('App.Leaf'),
})
到目前为止,我正在手动操作Tree
的叶子字段:
tree = App.store.create( App.Tree )
leaf = App.store.create( App.Leaf )
tree.get('leaves').pushObject( leaf )
App.store.commit()
现在这似乎有效,但事情变得奇怪了:
当我检查叶子的树字段时,我看到一个App.Tree实例在那里,id与树的实例匹配:
leaf.get('tree').get('id') // outputs 1
tree.get('id') // outputs 1
到目前为止还好。现在我检查树的叶子字段,我认为它是一个Ember可变数组,我看到了这个:
branch.get('leaves').content // outputs [ 2 ]
leaf.get('id') // outputs 1
所以我假设叶子mutable-array正在存储一个叶子id数组,除了它的id与叶子实例的id不匹配。
注意当leaf的id为2时,它存储在branch.leaves.content字段中为4,如果leaf id为3,则存储的id为6,等等。
答案 0 :(得分:3)
在您的示例中,一切正常,访问内容变量branch.get('leaves')
记录数组返回对象的clientId
数组。
然而,这是一个例外,因为以任何其他方式访问属性将透明地访问对象本身。
在您的情况下,如果您想要使用ID branch.get('leaves').mapProperty('id')