Pracuję nad aplikacją szkieletową, która sprawia, że prośba o crossdomeny jest spokojna. Zagnieżdżona struktura danych na żądanie są zobowiązani, we wniosku curl mam tę strukturę:Model szkieletowy: struktura danych zagnieżdżonych
{
"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"
}
}
}
w modelu nie mam zagnieżdżone struktury i jest to bardzo wygodne, ponieważ używam image
modelu pola w view
(DOM tworzenie elementu).
Jaki jest poprawny sposób wysyłania zagnieżdżonych danych do serwera z aplikacji Szkielet?
Model:
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: ''
},
});
Część widzenia, które wykorzystują image
modelu właściwość:
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});
});
},
strony innego widoku, które wysyłają dane do serwera.
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();
}
Dobre rozwiązanie! W tym czasie zostały przetworzone dane po stronie serwera. – I159