Tài liệu

Tài liệu

789 club - game bài đổi thưởng

Phân tích kết quả từ API trả về trong BackboneJS

Ngày cập nhật: 12-12-2015 Lượt xem: 8064 Danh mục: BackboneJS
Tìm kiếm

Trong nhiều trường hợp, dữ liệu được trả về từ API không tuân theo cấu trúc RESTful chuẩn mà lại có một định dạng riêng. Một ví dụ cụ thể như sau:

1
2
3
4
5
6
7
8
{
 "code": 0,
 "msg": "OK",
 "data": {
  "id": 1,
  "name": "zhongwei"
 }
}

Khi đó, làm thế nào để trích xuất và gán các thuộc tính phù hợp cho model trong BackboneJS? Câu trả lời nằm ở phương thức parse. Hàm này giúp bạn xử lý phản hồi từ server trước khi nó được lưu trữ vào model.

Dưới đây là một đoạn mã minh họa cách sử dụng parse để lấy ra đúng dữ liệu cần thiết:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
(function() {
 var Member = Backbone.Model.extend({
  defaults: {
   id: null,
   name: null
  },
  urlRoot: '/member',
  parse: function(rsp, xhr) {
   if (rsp.code === 0) {
    var data = rsp.data;
    return {
     id: data.id,
     name: data.name
    };
   }
  }
 });
})();

Trong đoạn code trên, hàm parse sẽ kiểm tra xem mã trạng thái (code) có bằng 0 hay không – tức là yêu cầu thành công. Nếu điều kiện thỏa mãn, nó sẽ lấy dữ liệu bên trong data và trả về một đối tượng chứa idname, hai thuộc tính của model.

Cách tiếp cận này rất hữu ích khi bạn làm việc với API có định dạng phức tạp hoặc không chuẩn. Bạn hoàn toàn có thể mở rộng logic bên trong parse tùy theo nhu cầu xử lý dữ liệu của mình.

Bạn có thể tham khảo thêm ví dụ chi tiết tại dự án mẫu trên GitHub.

  • Sử dụng phương thức parse trong BackboneJS để xử lý phản hồi từ API
comments powered by Disqus
Built with Hugo
Theme Stack thiết kế bởi Jimmy