Javascript model.save()具有belongsTo关系的余烬数据中的计时问题

Javascript model.save()具有belongsTo关系的余烬数据中的计时问题,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,我有两个模型(source和problem),当通过UI触发单击时,我正在保存一个与另一个相关的实例 App.sourcescocontroller=Ember.ArrayController.extend 行动: addProblem:(来源)-> problem=@store.createRecord('问题', 检测日期:新日期(), 资料来源:资料来源 ) 问题。保存()。然后(问题)-> #成功 ,(e)-> #处理错误 错误的 我确信source在addProblem操作中存在,但

我有两个模型(
source
problem
),当通过UI触发
单击时,我正在保存一个与另一个相关的实例

App.sourcescocontroller=Ember.ArrayController.extend
行动:
addProblem:(来源)->
problem=@store.createRecord('问题',
检测日期:新日期(),
资料来源:资料来源
)
问题。保存()。然后(问题)->
#成功
,(e)->
#处理错误
错误的
我确信
source
addProblem
操作中存在,但当客户端实际序列化模型并发送请求时,
detectedOn
属性存在,但找不到
source\u id

现在,这里是有趣的部分

当我在
setTimeout
中包装保存代码时,
detectedOn
source\u id
都会被发送到服务器:

App.sourcescocontroller=Ember.ArrayController.extend
行动:
addProblem:(来源)->
problem=@store.createRecord('问题',
检测日期:新日期(),
资料来源:资料来源
)
设置超时->
问题。保存()。然后(问题)->
#成功
,(e)->
#处理错误
1.
错误的
在我看来,这是余烬周期中的一个时间问题,或者我错过了什么


如何摆脱设置超时的
setTimeout
?我不应该每次保存时都这样做。

在解析承诺时,我通过手动设置反向关系来解决此问题。以下内容适用于您:

App.SourcesController = Ember.ArrayController.extend
  actions:
    addProblem: (source) ->
      problem = @store.createRecord('problem',
        detectedOn: new Date(),
        source: source
      )
      problem.save().then (problem) ->
          source.get('problems').addObject(problem)
        ,(e) ->
          # handle error
      false

您能为问题显示类定义吗?我已经注意到了这一点(我认为这是Ember的一个bug),但您能在保存之前尝试解决
源代码吗?像
problem.get('source')。然后(function(){problem.save();})
你的模型是什么样子的(它们是异步的吗?)
source
对象不会脏吗?