Backbone.js PUT и DELETE запросы формируются без идентификатора записи (id)

Столкнулся с проблемой при отправке PUT и DELETE запросов в backbone.js.

В запросе не указывался идентификатор изменяемой/удаляемой записи. Виной всему оказалась отдельно установленная библиотека backbone.paginator.

Каким-то образом, при использовании PageableCollection, модифицируется url при отправке PUT и DELETE запросов. Обходной путь: переопределить метод модели initialize таким образом:

 

var City = Backbone.Model.extend({
    initialize: function () {
        this.url = function () {
            if(this.get('id') !== undefined)
                return 'api/city/'  + this.get('id');
            else 
                return  'api/city'
        };
    }
});

 

Backbone - JavaScript-библиотека, основанная на шаблоне проектирования Model-View-Presenter. Предназначена для разработки веб-приложений с поддержкой RESTful JSON интерфейса. Backbone - очень лёгкая библиотека (упакованная и gzip-сжатая по величине ~6.3 Кб), но для работы необходима библиотека Underscore.js, а для поддержки REST API и работы с DOM элементами рекомендуется подключить jQuery или Zepto.