ember-data.js: https://github.com/emberjs/data/tree/0396411e39df96c8506de3182c81414c1d0eb981Lỗi nên được xử lý như thế nào khi sử dụng REST dữ liệu của Ember.js?
Nói tóm lại, khi có một lỗi, tôi muốn hiển thị thông báo lỗi trong giao diện, và sau đó người dùng có thể 1) hủy bỏ, mà sẽ rollback giao dịch 2) sửa lỗi đầu vào và thực hiện thành công giao dịch, vượt qua các xác thực trên máy chủ.
Dưới đây là đoạn mã từ nguồn. Nó không bao gồm gọi lại lỗi.
updateRecord: function(store, type, record) {
var id = get(record, 'id');
var root = this.rootForType(type);
var data = {};
data[root] = this.toJSON(record);
this.ajax(this.buildURL(root, id), "PUT", {
data: data,
context: this,
success: function(json) {
this.didUpdateRecord(store, type, record, json);
}
});
},
Nhìn chung, luồng nhận lỗi từ máy chủ và cập nhật chế độ xem là gì? Có vẻ như một cuộc gọi lại lỗi sẽ đặt mô hình ở trạng thái isError
và sau đó chế độ xem có thể hiển thị các thông báo thích hợp. Ngoài ra, các giao dịch nên ở lại bẩn. Bằng cách đó, giao dịch có thể sử dụng rollback
.
Dường như việc sử dụng store.recordWasInvalid
sẽ đi đúng hướng.
Vẫn chưa có cơ chế hoàn chỉnh để xử lý lỗi, xem https://github.com/emberjs/data/pull/376/, có lẽ bạn sẽ tìm thấy những gì bạn muốn. –
Có, việc thiếu xử lý lỗi là đáng ngạc nhiên, nhưng nó là tốt đẹp mà không có xử lý lỗi như trái ngược với một thực hiện ngây thơ mà sẽ thay đổi sau này. Tôi đã viết ứng dụng Ember gần đây của tôi để tránh lỗi máy chủ bằng cách thực hiện một số xác thực trên phía máy khách, trước khi thực hiện 'App.store.commit()'. – Mars