2013-10-08 11 views
6

Tôi đã mở rộng chương trình được đưa ra trong stackoverflow answer này để có một chương trình xóa tất cả các bản ghi cùng một lúc. Tuy nhiên, việc xóa chỉ xảy ra theo lô và không xóa tất cả mọi thứ cùng một lúc.Làm thế nào để xóa tất cả các bản ghi liên kết với một mô hình ember mà không xóa bộ nhớ cục bộ?

Đây là đoạn trích của hàm tôi đang sử dụng trong JSBin.

deleteAllOrg: function(){ 
    this.get('store').findAll('org').then(function(record){ 
    record.forEach(function(rec) { 
     console.log("Deleting ", rec.get('id')); 
     rec.deleteRecord(); 
     rec.save(); 
    }); 
    record.save(); 
    }); 
} 

Bất kỳ ý tưởng nào có thể sửa đổi chương trình sao cho tất cả các bản ghi có thể bị xóa cùng một lúc?

Tôi cũng đã thử model.destroy() và model.invoke ('deleteRecords') nhưng chúng không hoạt động.

Bất kỳ trợ giúp nào được đánh giá cao. Cảm ơn bạn đã giúp đỡ!

Trả lời

14

Gọi deleteRecord() trong vòng forEach sẽ ngắt vòng lặp. Bạn có thể sửa chữa nó bằng cách gói mã xóa trong một chức năng Ember.run.once như thế này:

this.get('store').findAll('org').then(function(record){ 
    record.content.forEach(function(rec) { 
     Ember.run.once(this, function() { 
      rec.deleteRecord(); 
      rec.save(); 
     }); 
    }, this); 
    }); 

Xem this jsBin.

+0

Cảm ơn bạn rất nhiều! Hoạt động hoàn hảo! :) – user2431285

+0

Tôi rất vui được trợ giúp! – chopper

+7

Ngày nay bạn có thể gọi 'this.get ('store'). FindAll ('org'). Gọi ('destroyRecord')' để xóa tất cả. –

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