2012-01-07 46 views
6

Tôi đang phát triển ứng dụng xương sống, điều này làm cho yêu cầu có nhiều tên miền chéo. Cấu trúc dữ liệu lồng nhau trong yêu cầu được yêu cầu, trong yêu cầu curl Tôi có cấu trúc:Mô hình xương sống: cấu trúc dữ liệu lồng nhau

{ 
    "site_id": 1, 
    "post": { 
     "site_id": 1, 
     "provider_id": 1, 
     "provider_post_id":1, 
     "created_ts": "12.12.12", 
     "post": { 
      "header": "text", 
      "caption": "text", 
      "image": "http://...jpg" 
     } 
    } 
} 

Trong mô hình tôi đã không lồng cấu trúc và điều này là khá thoải mái, bởi vì tôi sử dụng image lĩnh vực mô hình trong view (DOM tạo phần tử).

Cách chính xác để gửi dữ liệu lồng nhau đến máy chủ từ ứng dụng Backbone là gì?

mẫu:

var WraperModel = Backbone.Model.extend({ 
    url: 'http://mydomain/core/api/v1/bookmarklet_post/? callback=?', 
    defaults: { 
     site_id: 1, // shouldn't be hardcoded 
     type:"type", site_id:2, provider_id: 2, provider_post_id: 2, created_ts:2, 
     header : '', 
     caption: '', 
     image: '' 
    }, 
}); 

Phần xem, trong đó sử dụng image mô hình bất động sản:

drawItem: function (model) { 
    var inst = new ImageView({model: model, tagName: 'li',  className:'images-item'}).render(); 
    this.imagesWrapper.append(inst.el); 
}, 
getImages: function() { 
    var images = doc.getElementsByTagName('img'), 
     view = this; 
    _.each(images, function (image) { 
     image.offsetHeight > 75 
     && image.offsetWidth > 75 && 
     view.collection.add({image: image.src}); 
    }); 
}, 

Phần nhìn khác, trong đó gửi dữ liệu đến máy chủ.

sendTo: function(){ 
    var that = this, 
    data = {saving: true}; 

    $('#add-header').val() && (data.header = $('#add-header').val()); 
    $('#add-description').val() && (data.caption = $('#add-description').val()); 
    this.model.set(data); 
    this.model.save(); 
} 

Trả lời

1

thông số đầu tiên bạn chuyển vào save là một giá trị băm của thuộc tính sẽ được chuyển cùng lúc bạn lưu.

Trong chức năng sendTo của bạn, hãy xây dựng một đối tượng có dữ liệu từ mô hình của bạn và mọi giá trị biểu mẫu bổ sung theo cách mà máy chủ mong đợi. Theo mặc định, khi lưu thành công dữ liệu từ phản hồi sẽ được chuyển qua phương thức phân tích cú pháp và đặt lại trên mô hình.

var myData = { 
    //create nested object for the server 
}; 

this.model.save(myData); 
+0

Giải pháp tốt! Tôi đã xử lý dữ liệu ở phía máy chủ, trong thời gian này. – I159

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