所以我得到了我正在尝试验证的模型,根据这应该有用的书籍,但是我接受的是未定义的。
validate: (attrs, options)->
attrs
如果我继续这样做:
validate: ->
this.attributes
我可以很好地访问模型的属性,但我不认为这是推荐的方法。
这是我的型号代码:
class Todo extends Backbone.Model
defaults:
title: 'default title'
completed: false
validate: (attrs, options)->
attrs
myTodo new Todo
myTodo.validate()
//returns false because attrs is undefined
我错过了什么?
答案 0 :(得分:1)
来自fine manual:
验证
model.validate(attributes, options)
[...]默认情况下,{strong>验证会在
save
之前调用,但如果传递set
,也可以在{validate:true}
之前调用。
所以validate
意味着被Backbone调用,而不是由你直接调用。你自己打电话给validate
:
myTodo.validate()
但未传递任何参数,因此attrs
为undefined
,因为您没有传递其值。
当您致电validate
或myTodo.save()
时,您应该让Backbone拨打myTodo.set(new_values, validate: true)
。