никакой поиск в Google не может решить мою путаницу, поэтому я решил задать вопрос здесь.
Я пытаюсь сохранить модель и использовать обратные вызовы успеха/ошибки. В документации по магистрали указано, что вы сохраняете свою модель следующим образом: model.save([attributes], [options])
.
Я нигде не могу найти документацию, в которой рассказывается, как сохранить всю модель (т.е. без указания атрибутов), но наткнулся на этот вопрос, где во втором ответе говорится, что для сохранения всей модели вы можете сделать model.save({}, [options])
.
Однако я пытаюсь это безрезультатно. Мой код ниже:
Базовая модель:
class Student extends Backbone.Model
url: ->
'/students' + (if @isNew() then '' else '/' + @id)
validation:
first_name:
required: true
last_name:
required: true
email:
required: true
pattern: 'email'
schema: ->
first_name:
type: "Text"
title: "First Name"
last_name:
type: "Text"
title: "Last Name"
email:
type: "Text"
title: "Email"
На мой взгляд, у меня есть следующая функция:
class Students extends CPP.Views.Base
...
saveModel = ->
console.log "model before", @model.validate()
console.log "model attrs", @model.attributes
@model.save {},
wait: true
success: (model, response) ->
notify "success", "Updated Profile"
error: (model, response) =>
console.log "model after", @model.validate()
console.log "model after is valid", @model.isValid()
console.log "response", response
notify "error", "Couldn't Update"
В первом console.log перед сохранением мне сообщают, что модель действительна, посредством ответа undefined
. Если я действительно смотрю на модель, то вижу, что все три поля заполнены.
Точно так же в следующих двух журналах консоли в ошибках @model.validate()
и @model.isValid()
оба возвращают undefined
и true
соответственно. Однако ответ, который я получаю при попытке сохранить модель, Object {first_name: "First name is required", last_name: "Last name is required", email: "Email is required"}
Наконец, в console.log атрибутов моделей я получаю:
Object
created_at: "2012-12-29 23:14:54"
email: "[email protected]"
first_name: "John"
id: 2
last_name: "Doe"
type: "Student"
updated_at: "2012-12-30 09:25:01"
__proto__: Object
Это наводит меня на мысль, что когда я передал {}
своей модели, она на самом деле пыталась сохранить атрибуты как нулевые, иначе почему бы еще возникла ошибка?
Может ли кто-нибудь указать, что я делаю неправильно? Я бы предпочел не передавать каждый атрибут отдельно в сохранение!
заранее спасибо