Ember.js:如何保存模型

Jea*_*eri 6 model save ember.js ember-data

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

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

现在,我不知道怎么保存,比如

m.save() ;
App.MyModel.save(m) ;
//etc
Run Code Online (Sandbox Code Playgroud)

不工作.有什么建议 ?

干杯

Bar*_*obs 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();
Run Code Online (Sandbox Code Playgroud)

知道save调用返回一个promise 也是很好的,它在服务器返回响应时解析.

person.save().then(function() {
  // SUCCESS
}, function() {
  // FAILURE
});
Run Code Online (Sandbox Code Playgroud)


Bra*_*est 1

编辑:这现在已经过时了 Ember Data 1.0 beta 及更高版本,请参阅 Bart 的答案

如果您使用 Ember-Data,则需要调用commit()模型的事务。

m.get('transaction').commit()
Run Code Online (Sandbox Code Playgroud)

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

m.get('store').commit()
Run Code Online (Sandbox Code Playgroud)