2012-01-07 33 views
6

Çapraz alanlı bir istekte bulunmayı sağlayan omurga uygulaması geliştiriyorum. Ben view (DOM image modeli alanını kullanabilirsiniz, çünkü ben yapıya iç içe değil ve bu oldukça rahat modeldeOmurga modeli: iç içe geçmiş veri yapısı

{ 
    "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" 
     } 
    } 
} 

: istekte iç içe veri yapısı bukle istekte O yapıya sahip gereklidir eleman yaratma).

Backbone uygulamasından sunucuya iç içe veri göndermenin doğru yolu nedir?

Model: sunucuya veri göndermek başka görüşünü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}); 
    }); 
}, 

bölümünü: image modeli özelliğini kullanın

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: '' 
    }, 
}); 

görünümün bir parçası.

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(); 
} 

cevap

1

Eğer save geçmek ilk parametre senin kurtarmak iletilmez olacak özelliklerin bir karma olduğunu.

sendTo işlevinizde, yalnızca modelinizdeki verilerle ve ek form değerleriyle sunucunun beklediği şekilde bir nesne oluşturun. Varsayılan olarak, bir kaydetme başarılı olduğunda, yanıttaki veriler ayrıştırma yönteminden geçirilir ve modele geri yüklenir.

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

this.model.save(myData); 
+0

İyi bir çözüm! Verileri bu kez sunucu tarafında işledim. – I159

İlgili konular