Я новичок в MongoDB и Backbone, поэтому я пытаюсь понять их, но это сложно. У меня большая, большая проблема: я не могу понять, как манипулировать атрибутами в Backbone.Model, чтобы использовать в Views только то, что мне нужно. Более конкретно - у меня есть модель:
window.User = Backbone.Model.extend({
urlRoot:"/user",
idAttribute: "_id",
defaults: {
_id: null,
name: "",
email: "[email protected]"
}
});
window.UserCollection = Backbone.Collection.extend({
model: User,
url: "user/:id"
});
И у меня есть Вид:
beforeSave: function(){
var self = this;
var check = this.model.validateAll();
if (check.isValid === false) {
utils.displayValidationErrors(check.messages);
return false;
}
this.saveUser();
return false;
},
saveUser: function(){
var self = this;
console.log('before save');
this.model.save(null, {
success: function(model){
self.render();
app.navigate('user/' + model.id, false);
utils.showAlert('Success!', 'User saved successfully', 'alert-success');
},
error: function(){
utils.showAlert('Error', 'An error occurred while trying to save this item', 'alert-error');
}
});
}
Мне нужно использовать "put" метод whit data из любых полей, кроме "_id", поэтому он должен быть smth вроде:
{"name": "Foo", "email": "[email protected]"}
Но каждый раз, не зависит от того, что я делаю, отправляю
{**"_id": "5083e4a7f4c0c4e270000001"**, "name": "Foo", "email": "[email protected]"}
и эта ошибка с сервера:
MongoError: не может изменить _id старого документа: {_id: ObjectId ('5083e4a7f4c0c4e270000001'), имя: "Foo" } new: {_id: "5083e4a7f4c0c4e270000001", имя: "Бар", электронная почта: "[email protected]" }
Ссылка Github: https://github.com/pruntoff/habo
Спасибо заранее!