Подтвердить что ты не робот

Backbone.js УДАЛИТЬ запрос не стрелять

Я пытаюсь запустить запрос backbone.js DELETE, но не вижу никаких запросов, сделанных в моей консоли.

У меня есть такая модель коллекции:

var Model = Backbone.Model.extend(
{
    urlRoot: '/test',
    defaults:{}
});

var TableList = Backbone.Collection.extend(
{
    url: '/test',
    model: Model
});

На мой взгляд, я запускаю это:

this.model.destroy();

Кажется, что все работает нормально, я вижу вывод, исходящий из функции remove, которая вызывает уничтожение, поэтому я знаю, что он туда попал, плюс он также успешно запускает метод unrender, который у меня есть. Невозможно увидеть какие-либо запросы, сделанные на сервер, хотя?

4b9b3361

Ответ 1

Я нашел проблему для своей проблемы, но пока не решил. Я не уверен, что это ошибка с позвоночником или нет, но я использую ajaxSetup и ajaxPrefilter. Я попытался прокомментировать это, и это сработало. Я сузил его до метода ajaxSetup и, в частности, с использованием параметра data для предварительной настройки некоторых значений.

Ответ 2

Если я не ошибаюсь, вы должны иметь свойство id на своей модели, чтобы убедиться, что оно попадает в правильный URL-адрес. IE, если ваша модель была...

var Model = Backbone.Model.extend({
    url: '/some/url'
});

var model = new Model({
    id: 1 
});
model.destroy(); // I THINK it will now try and DELETE to /some/url/1

Без идентификатора он не знает, как правильно создать URL-адрес, как правило, вы выбираете модель или создаете новую и сохраняете ее, тогда у вас будет Url...

Посмотрите, поможет ли это!

Ответ 3

Вы пытались использовать успешные и обратные вызовы ошибок?

this.model.destroy({
    success : _.bind(function(model, response) {
                  ...some code
              }, this),
    error : _.bind(function(model, response) {
                  ...some code
              }, this);
});

Может показаться вам полезным, если вы не видите запрос DELETE.