ember数据:手动将模型发送到更新状态

时间:2012-05-17 17:08:28

标签: ember.js ember-data

我有一个ember-data模型(父级),它有几个嵌入式模型作为属性。当我更新嵌入式模型hasMany数组时,父级不会进入更新/脏状态。如何手动将父级发送到脏状态?

我没有运气试过以下内容:

parent.set('isDirty', true);
parent.get('stateManager').goToState('dirty')
parent.get('stateManager').goToState('updated.uncommitted')

2 个答案:

答案 0 :(得分:5)

终于找到了我自己的解决方案:

parent.get('stateManager').goToState('updated')

我还应该提到,当向子节点添加belongsTo关联时,如果更改了hasMany关联,则父节点将变脏。但是,对于孩子的正常属性发生变化的情况,我仍然需要手动弄脏。

答案 1 :(得分:0)

如果您正在使用Ember data(v1.0.0> x)。

parent.get('stateManager').goToState('updated')

不再工作了。 现在您应该使用

parent.transitionTo('updated');

这些是与ember数据一起提供的有效状态的层次结构:

* root
  * deleted
    * saved
    * uncommitted
    * inFlight
  * empty
  * loaded
    * created
      * uncommitted
      * inFlight
    * saved
    * updated
      * uncommitted
      * inFlight
  * loading

Sourece of the states