为什么在调用model.save之前,商店中的模型已经更新?

时间:2014-04-15 18:53:49

标签: ember.js

我正在测试ember.js中的一些行为。

情景:

我有一个名为Team的简单模型,其属性为name

我正在为团队使用fixures-adapter。

我在列表视图中实现了内联编辑。文本框字段绑定到models属性" name"。

Object-Controller处理SaveEvent。在SaveEvent中,我执行以下操作:

    App.TeamController = Ember.ObjectController.extend({
    actions: {

            save: function(){ 
                       var model = this.get('model');

                       // alerts changed text from textbox which is bound to the model
                       alert(this.get("model.name")); 

                       //load unchanged Object from store (before calling save):    
                       var fromStore = this.store.getById('team',2); 

                      // Also alerts the changed content from the text box
                      alert(fromStore.get("name")); 
                  }
            }
    });

为什么this.get(" model.name")的警报等于alert(fromStore.get(" name"))而不调用model.save()?之间:当我使用this.store.find(' team',2)并解析可能的结果时,行为仍然是相同的。

当我对Web服务使用自己的适配器时代码会如何表现?

1 个答案:

答案 0 :(得分:0)

商店只有一份记录副本。因此,当您再次从商店中获取它时,它将返回与您相同的实例。

save会将记录保存到您的服务器,而不会持久存储到商店。

在您成功保留之前,属性不会记录在记录中。您仍然可以record.rollback()还原已发生的更改。