2013-06-29 29 views
7

Giả sử tôi đang cố gắng lưu bản ghi Foo vào mặt sau. Vì lý do gì, back-end không bao giờ trả về (không thành công hay thất bại).Dữ liệu Ember: làm thế nào tôi có thể xóa/xóa một bản ghi bị kẹt trong trạng thái "inFlight"?

Từ những gì tôi có thể thấy, có vẻ như foo vẫn ở trạng thái "đang bay". Vấn đề với trạng thái này là nó khóa hoàn toàn bản ghi - bạn không thể làm bất cứ điều gì trên nó (không thể khôi phục, không thể dỡ bỏ). Tôi hiểu tại sao nó như thế (để cố gắng và giữ cho mọi thứ nhất quán). Nhưng có cái gì bạn có thể làm về một trường hợp cạnh như thế này?

+0

Tôi đang phải đối mặt với cùng một vấn đề, xin vui lòng gửi nếu bạn tìm thấy câu trả lời. –

Trả lời

6

Tôi đã không cố gắng này nhưng bạn có thể tìm một giải pháp bằng cách nhìn vào mã nguồn ember dữ liệu của, đặc biệt states.js: https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js#L306-L351

Không chắc có một thực hành tốt nhất rắn ở đây, nhưng tôi đoán tốt nhất là bạn có thể khôi phục bằng cách gửi becameInvalid đến stateManager của mô hình.

+0

Cảm ơn rất nhiều Mike. Rất hữu ích. Đó là một chút khó khăn để sử dụng khi các mối quan hệ có liên quan, nhưng tôi đã nhận nó để làm việc cuối cùng. Cảm ơn một lần nữa. – PJC

6

xây dựng trên Mike's gợi ý, tôi đã kết thúc như sau:

record.send('becameInvalid'); 
record.unloadRecord(); 
Các vấn đề liên quan