никакво търсене в Гугъл не успява да разреши объркването ми, така че реших да задам въпроса тук.
Опитвам се да запазя модел и да използвам обратните извиквания успех/грешка. В основната документация се посочва, че запазвате своя модел така: 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
Това ме кара да вярвам, че когато предадох {}
на моя модел, той всъщност се опитваше да запази атрибутите като нула, иначе защо би допуснал грешка?
Може ли някой любезно да ми посочи какво правя погрешно? Предпочитам да не се налага да подавам всеки атрибут поотделно към запазването!
Благодаря предварително