Tôi đã tìm thấy trên GitHub một ví dụ làm việc tốt cho dữ liệu ember dưới https://github.com/dgeb/ember_data_example và cố gắng mở rộng nó bằng tài nguyên lồng nhau ('has_many: comments'). Trong ví dụ ban đầu, một giao dịch mới được tạo ra mỗi khi chế độ xem chỉnh sửa được bật và nó được gửi/cuộn lại nếu chế độ chỉnh sửa bị bỏ đi.Ember-data: cách chia sẻ và cập nhật một đối tượng trong giao dịch giữa các hoạt động của bộ điều khiển?
Tôi di chuyển để thêm nhận xét mới vào content.comments Tôi không thể làm điều đó và có lỗi vì 'nội dung' đã có trong giao dịch (Lỗi: xác nhận không thành công: Khi bản ghi đã thay đổi, bạn không thể di chuyển nó vào một giao dịch khác).
Ý tưởng tôi cố gắng nhận ra sai và tôi phải thực hiện theo cách khác?
App.EditContactController = Em.Controller.extend({
content: null,
addComment: function() {
// ERROR here:
this.get('content.comments').addObject(App.Comment.createRecord({body: ''}));
},
enterEditing: function() {
this.transaction = this.get('store').transaction();
if (this.get('content.id')) {
this.transaction.add(this.get('content'));
} else {
this.set('content', this.transaction.createRecord(App.Contact, {}));
}
},
exitEditing: function() {
if (this.transaction) {
this.transaction.rollback();
this.transaction = null;
}
},
updateRecord: function() {
// commit and then clear the transaction (so exitEditing doesn't attempt a rollback)
this.transaction.commit();
this.transaction = null;
}
});