我正在测试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服务使用自己的适配器时代码会如何表现?
答案 0 :(得分:0)
商店只有一份记录副本。因此,当您再次从商店中获取它时,它将返回与您相同的实例。
save
会将记录保存到您的服务器,而不会持久存储到商店。
在您成功保留之前,属性不会记录在记录中。您仍然可以record.rollback()
还原已发生的更改。