2012-04-03 28 views

Trả lời

4

Bạn có thể sử dụng transaction, được xác định transaction.js với các thử nghiệm tương ứng trong transaction_test.js.

Xem ví dụ here:

App.store = DS.Store.create(...); 

App.User = DS.Model.extend({ 
    name: DS.attr('string') 
}); 

var transaction = App.store.transaction(); 
transaction.createRecord(App.User, { 
    name: 'tobias' 
}); 

App.store.commit(); // does not invoke commit 
transaction.commit(); // commit on store is invoked​ 
1

Gọi createModel thay!

Ví dụ:

// This is a persisted object (will be saved upon commit) 
var persisted = App.store.createRecord(App.Person, { name: "Brohuda" }); 

// This one is not associated to a store so it will not 
var notPersisted = App.store.createModel(App.Person, { name: "Yehuda" }); 

Tôi đã thực hiện này http://jsfiddle.net/Qpkz5/269/ cho bạn.

+0

Bạn đang sử dụng 'ember-latest.js' từ phần tải xuống của kho dữ liệu. Tệp này đã được tải lên 2 tháng trước (2011-01-30) và đã lỗi thời. Tôi đã không tìm thấy phương pháp này trong mã từ chủ. – pangratz

+0

Tôi có nghĩa là 'ember-data-latest.js' ... – pangratz

+0

@pangratz là đúng, tôi đã không nhận thấy rằng điều này đã thay đổi. Kudos him – Luan

0

Bạn có thể sử dụng _create: App.MyModel._create() - nó sẽ liên kết mô hình với trình quản lý trạng thái của riêng mình, vì vậy App.store.commit() sẽ không hoạt động.

Tuy nhiên, _create là "riêng tư". Tôi nghĩ rằng cần phải có một phương pháp công khai cho trường hợp sử dụng này.

+0

Đây là vấn đề Github: https://github.com/emberjs/data/issues/259 –

Các vấn đề liên quan