Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Backbone.[View|Model].extend оборачиваете в ();?app.models.page = new (Backbone.View.extend({Зачем использовать data-аттрибуты для хранения данных, которые вы храните в модели?
Считайте предыдущее предложение одной из основных причин написания данной заметки. Если вы с ним не согласны — дальше можно не читать.
model.save({}, {data: {state: 1}});
model.fetch({data: {state: 2}});
var someModelData = {data: {state: 1}};
var SomeModel = Backbone.Model.extend({
…
sync: function(method, model, options) {
var myOptions = options;
if (method == 'read') {
myOptions = _.extend(someModelData, myOptions);
}
Backbone.sync.call(this, method, model, myOptions);
}
});
var someData = {data: {state: 1}};
var oldSync = Backbone.sync;
Backbone.sync = function(method, model, options) {
var myOptions = options;
if (method == 'read') {
myOptions = _.extend(someData, myOptions);
}
return oldSync(method, model, myOptions);
};
var SomeModel = Backbone.Model.extend({
…
sync: function(method, model, options) {
var myOptions = options;
if (method == 'create') {
myOptions.success = function(resp, status, xhr) {
if (resp.has_error) {
console.log('Error', resp);
return;
}
return options.success(resp, status, xhr);
};
}
Backbone.sync.call(this, method, model, myOptions);
}
});
app.models.note = (Backbone.Model.extend({...app.models.Note = (Backbone.View.extend({...app.models.notes = new (Backbone.Collection.extend({...app.models.page = new (Backbone.View.extend({...// Сливаем методы дубовым способом
var method = (method=='update'||method=='create')?'save':method;options.success(data.rows?data.rows:data);
Практический пример использования Backbone