Ответ 1
Концептуально URL-адрес базовой модели является основным URL-адресом GET ресурса. Чтобы использовать другой URL-адрес для некоторых действий, переопределите функцию синхронизации модели. К счастью, Backbone упрощает переопределение:
window.MyModel = Backbone.Model.extend({
// ... other stuff ...
url: '/myapipath/special-path/?code=ABC',
methodUrl: {
'create': '/myapipath/special-path/',
'delete': '/myapipath/itemtype/id/'
},
sync: function(method, model, options) {
if (model.methodUrl && model.methodUrl[method.toLowerCase()]) {
options = options || {};
options.url = model.methodUrl[method.toLowerCase()];
}
Backbone.sync(method, model, options);
}
}
Изменить. Я еще раз посмотрел на источник Backbone и заметил, что он объединяет весь аргумент options
для сборки параметров, а не options.params
, и соответственно обновил мой пример.