我想用Backbone.save模型,該模型的巢數據需要進行濾波,所以我用另一骨幹樁數據
model.save(null,{
success: ...,
error:...,
data: {
id:null,
name:'myname',
nestmodel: {
id:'xx'/*Other data i don't need it,so just id column*/
}
}
}
而且我不希望使用patch
HTTP方法。因爲我只是添加一個新模型,而不是更改零件數據。
而且我不想發佈一些nestmodel
數據,因爲它很大,我只想要id是好的。
而nestmodel
只需要id。
我已讀同步(Backbone.js的)和Backbone.js的/ express.js參數時model.save()
還有就是要解決這個問題的方式排除模型屬性。
這就是我的整個代碼:
sync: function(method, model, options) {
var data, orderSuiteItems;
if (method === 'create') {
options.url = this.url;
} else {
// MUST setting the url .options's url is undefined
options.url = this.url + this.idUrl(this.get('id'));
}
// IF `create` or `update` , pick the we need properties
if (method === 'create' || method === 'update') {
orderSuiteItems = [];
if (this.has('orderSuiteItems')) {
// Because the `dishes` and `dishesUnitPrice` have a lot of prop,
// Each of `dishes` or `dishesUnitPrice` may each have 10K data
orderSuiteItems = _.map(this.get('orderSuiteItems'), function(osi) {
return {
id: osi.id,
qty: osi.qty,
servingQty: osi.qty,
confirmQty: osi.confirmQty,
deleted: osi.deleted,
orderItem: _.pick(osi.orderItem, 'id'),
dishes: _.pick(osi.dishes, 'id'), // HAVE a large prop
dishesUnitPrice: _.pick(osi.dishesUnitPrice, 'id'), // HAVE a large prop
orderItemStatus: osi.orderItemStatus,
piece: osi.piece
};
});
}
data = {
id: this.get('id'),
order: this.get('order'),
price: this.get('price'),
dishes: _.pick(this.get('dishes'), 'id', 'isSuite'),
dishesUnitPrice: _.pick(this.get('dishesUnitPrice'), 'id'),
qty: this.get('qty'),
servingQty: this.get('servingQty'),
confirmQty: this.get('confirmQty'),
sum: this.get('sum'),
orderSuiteItems: orderSuiteItems,
orderItemStatus: this.get('orderItemStatus')
};
// Setting attrs with pick data.
options.attrs = data;
return Backbone.sync(method, model, options);
} else {
return Backbone.sync(method, model, options);
}
}
你只是想發送'id'?目前還不清楚你在找什麼。 – WiredPrairie 2013-04-20 22:19:24
我想Nestmodel只需要id – sjbwylbs 2013-04-21 05:49:58
只要調用jQuery的Ajax方法,併發布你想要的數據,如果你的需求不滿足的內置API。 – WiredPrairie 2013-04-21 10:56:23