tl; dr:在this page上,点击"是" - parent.id
"伟大......"没有设定。点击"也许"然后"是"再次 - 现在parent.id
是0
。为什么第一次没有设置?
此处my code。
我制作了一种decision tree,其中每个节点(card
)都有多个儿童选择。我这样定义了这种关系:
App.Card = DS.Model.extend
child: DS.belongsTo('card', inverse: 'parent')
parent: DS.belongsTo('card', inverse: 'child')
question: DS.attr('string')
answers: DS.hasMany('answer', async: true, inverse: 'card')
我将孩子设置为CardController#answer
:
answer: (answer) ->
console.log "answering"
@get('model').set('child', answer.get('card'))
这很好用,但它没有设置逆关系。
您可以点击蓝色yes
按钮验证这一点:"嗨约翰......"卡片child.id
更改为1
,但子卡parent.id
(" Great ..."卡)为空。
但这里有一个奇怪的部分:如果你切换"嗨约翰......"的孩子几次(点击maybe
,然后回到{ {1}}),然后设置了孩子的yes
!
为什么儿童卡的parent.id
第一次被设置?
答案 0 :(得分:0)
来自freenode.net上的alexspeller
的IRC用户#emberjs
:
这可能是一个错误但它可能会被[单一真相来源]分支修复
来自Ember的THE ROAD TO EMBER DATA 1.0:
TL; DR Ember Data 1.0即将推出。在我们可以自信地保证不破坏API之前,我们还有一些最后的功能。具体做法是:
- 保证如果双向关系的一方发生变化,另一方将保持同步,即使它尚未加载。
醇>
所以这可能是Ember Data 1.0中的一个错误。我将探索另一种Ember数据存储Ember Model,它更稳定并支持一对一的关系。