2015-06-17 2 views
-1
var elementUrlRoot = api_url + '/elements'; 

var elementModel = Backbone.Model.extend({ 
    'idAttribute': '_id' //mongoDB 
    , 'urlRoot': elementUrlRoot 
    , defaults: { 
     "signature": "", 
     "group": 0 
    }//defaults 
}); 

var elementCollection = Backbone.Collection.extend({ 
    model: elementModel 
    , 'url': elementUrlRoot 
}); 

var testmodel = new elementModel({DOM_id: 111}); 

testmodel.save({signature: "test"}, 
    { 
     error: function (model, response, options) { 
      console.log('test model save error:', response); 
     }, 
     success: function() { 
      console.log('test model save success'); 
     } 
    } 
); 

Моя базовая модель не сохраняется на сервере, когда я ее обновляю. Я установил атрибут urlRoot Модели (который в соответствии с документацией не нужен). Но HTTP-запросов до сих пор нет.Магистральная модель не сохраняется

Update:

Я добавил метод успеха в функции обратного вызова. Он выполняется. Но на сервер не отправляются запросы.

Обновление:

Я нашел ошибку. Я добавил этот код, чтобы сохранить целую коллекцию.

Backbone.Collection.prototype.syncCollection = function (options) { 
    console.log('syncing the collection'); 
    Backbone.sync("create", this, options); 
}; 

Это сработало, и я смог сохранить коллекции с ним. Но, похоже, это вызвало проблему с сохранением отдельных моделей. Запросы выдаются при удалении.

+0

Try добавления обратного вызова ошибки в 'save' опций. –

+0

Спасибо за информацию. Я добавил этот обратный вызов. Но он не выводит никаких результатов на консоль, поэтому он не называется. – reggie

+0

Я вижу, что мой testmodel.save() возвращает объект jqXHR со статусом 204 (который я ожидаю). Но я не вижу активности на вкладке сети консоли. Не отображаются ли запросы на вкладке сети консоли Chrome? – reggie

ответ

0

Ваш urlRoot необходим, потому что ваша модель не является частью коллекции.

Попробуйте unquoting свой атрибут UrlRoot на левой стороне уступке http://backbonejs.org/#Model-urlRoot

+0

Это нормально, если вы не в коллекции. Документы говорят: «Укажите urlRoot, если вы используете модель ** вне ** коллекции, ...» –

+0

Я понимаю, ОП сказал «Я установил атрибут urlRoot модели (который согласно документация не требуется) « Я указывал, что это необходимо, потому что данная модель находится вне коллекции. Просто попробуйте прояснить некоторую путаницу, о которой OP, казалось, нуждалась в необходимости этого urlRoot. –

+0

. Игнорирование ключа не должно иметь никакого значения. И вы действительно просто добавили в замешательство, потому что в документации говорится, что ключ urlRoot не требуется. Моя коллекция указывает URL-адрес, поэтому любые модели, взятые из коллекции, должны иметь правильный URL-адрес. – reggie