Bạn có thể nghe sự kiện reset
từ mô hình và làm sạch và this.destroy()
để phản hồi. Đó là những gì móc sự kiện được cho. Xem http://backbonejs.org/#Events-catalog
Lưu ý: Bạn hoàn toàn không nên thay đổi hoặc ghi đè bất kỳ phương pháp hoặc thuộc tính nào được đặt trước bằng dấu gạch dưới, chẳng hạn như _removeReference
. Dấu gạch dưới có nghĩa là nó được dự định như là một phương thức nội bộ hoặc thuộc tính, và rằng việc triển khai nội bộ có thể thay đổi (API của chúng được coi là không ổn định). Nâng cấp Backbone có thể phá vỡ bất kỳ mã nào dựa trên các phương thức có tiền tố gạch dưới, ngay cả khi bản phát hành được quảng cáo dưới dạng thay đổi tương thích ngược.
Tôi biết câu hỏi của bạn nói "không lặp lại", nhưng đó thực sự là cách đáng tin cậy nhất để xử lý vấn đề này. Hãy xem xét trường hợp một mô hình đã được chuyển từ bộ sưu tập này sang bộ sưu tập khác, nhưng nó vẫn đang lắng nghe sự kiện reset
của bộ sưu tập đầu tiên (vì một lập trình viên sáu tháng sau đó không nhận thấy kết nối).
Bây giờ khi bộ sưu tập đầu tiên được đặt lại, mô hình đã di chuyển sẽ bị hủy. Rất tiếc! Lặp lại bộ sưu tập có lẽ là cách tốt nhất để xử lý việc này nếu bạn không có điểm cuối trên API sẽ xóa tất cả các đối tượng trong bộ sưu tập theo lô trên máy chủ API (thường là cách xử lý này) .
May mắn thay, lặp đi lặp lại đó là khá dễ dàng:
destroyAll: function() {
var promises = [];
while(this.models.length > 0) {
promises.push(this.models[0].destroy());
}
// handle errors communicating with the server
$.when(promises).fail(function (response) {
this.trigger('syncError',
response);
}.bind(this));
}
Nguồn
2013-04-12 17:17:36
Không ghi đè hoặc thay đổi phương pháp hoặc tài sản gạch-tiền tố. Xem câu trả lời của tôi, dưới đây cho một lời giải thích. –