比方说一些 DS.Model 类Leaf
belongsTo class Tree
,一个Tree
hasMany 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 与树的 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
所以我假设叶子可变数组正在存储一个叶子ID数组,除了它的ID与叶子实例的ID不匹配。
注意当叶子的id为2时,它在branch.leaves.content字段中存储为4,如果叶子id为3,则存储的id为6,以此类推。