Ember.js:如何保存模型

时间:2013-01-22 09:46:07

标签: model save ember.js ember-data

从ember docs中可以清楚地知道你应该能够保存一个肮脏的模型

var m = App.MyModel.find(10) ;
...
m.set("firstName", "John") ;
m.get("isDirty") ; // --> true

现在,我不知道如何保存,比如

m.save() ;
App.MyModel.save(m) ;
//etc

不行。有什么建议吗?

干杯

2 个答案:

答案 0 :(得分:51)

自Ember Data 1.0发布以来,已接受的答案已不再有效(撰写本文时为测试版)。使用Ember Data(1.0)可以更轻松,更直观地保存。

var person = this.store.createRecord('person');
person.set('frist_name', 'John');
person.set('last_name', 'Doe');
person.save();

最好知道save调用返回一个promise,当服务器返回响应时,它会被解析。

person.save().then(function() {
  // SUCCESS
}, function() {
  // FAILURE
});

答案 1 :(得分:1)

编辑:现在已经过时了Ember Data 1.0 beta及以后,请参考Bart的回答

如果您使用的是Ember-Data,则需要在模型的交易中调用commit()

m.get('transaction').commit()

或者如果您想保存应用中的每个脏对象

m.get('store').commit()