Javascript 余烬:一对一关系(DS.belongsTo)不';t集逆

Javascript 余烬:一对一关系(DS.belongsTo)不';t集逆,javascript,ember.js,Javascript,Ember.js,tl;dr:在上,单击“是”-parent。未设置“Great…”的id。单击“可能”,然后再次单击“是”-现在parent.id是0。为什么第一次没有设置好呢 给你 我正在制作一种模型,其中每个节点(一张卡)都有多个儿童选择。我对这种关系的定义如下: App.Card = DS.Model.extend child: DS.belongsTo('card', inverse: 'parent') parent: DS.belongsTo('card', inverse: 'child'

tl;dr:在上,单击“是”-
parent。未设置“Great…”的id
。单击“可能”,然后再次单击“是”-现在
parent.id
0
。为什么第一次没有设置好呢

给你

我正在制作一种模型,其中每个节点(一张
)都有多个儿童选择。我对这种关系的定义如下:

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
按钮来验证这一点:“Hi John…”卡的
child.id
更改为
1
,但子卡的
parent.id
(“Great…”卡)为空

但这里有一个奇怪的部分:如果您切换“Hi John…”的孩子几次(单击
可能
,然后返回到
),那么孩子的
父.id
就设置好了


为什么没有第一次设置子卡的父卡?

来自freenode.net上的IRC用户
alexspeller
来自
#emberjs

这可能是一个bug,但可能会被[单一真相来源]分支修复

从余烬:

TL;恩伯博士数据1.0即将发布。在我们自信地保证不破坏API之前,我们还有一些最后的特性要实现。具体而言:

  • 保证如果双向关系的一方发生变化,另一方将保持同步,即使尚未加载
  • 所以这可能是Ember Data 1.0中的一个bug。我将探索另一种余烬数据存储,它更稳定,支持一对一关系