Backbone を 0.9.2 から 0.9.9 にアップグレードしたため、エラーが発生しています。
ハッシュのデフォルト値を使用して新しいモデルをインスタンス化するとき。これらの値を検証するために validate メソッドが呼び出され、失敗しました。
基本的に contactModel に新しいメッセージを設定したいのですが、このメッセージはデフォルトのものとは異なるはずです。これが、このモデルのインスタンスで検証が失敗した理由です。検証メソッドがインスタンスで呼び出されなかったため、これはバックボーン 0.9.2 で正常に機能していました。
誰かがこれの何が悪いのか説明できますか?
これは私の BackboneModel です:
class ContactModel extends Backbone.Model
defaults :
message : 'Initial message'
validate : ( attrs_ ) =>
if attrs_.message.toString() is @.defaults.message.toString()
return 'Same message'
if attrs_.message.length < 55
return 'Your message is too short buddy'
sync : =>
#Custom Sync implementation
これは私の BackboneView です:
class ContactPageView extends AbstractView
id : 'contact-page'
template : null
model : null
events :
'keypress #contactTextArea' : 'onKeyPress'
'submit #contactForm' : 'submit'
init : ->
@model = new ContactModel()
console.log @model.get 'message'
#Print "undefined"
@model.bind "success", @success, this
@model.bind "error", @error, this
@template = _.template $( '#template_page_contact' ).html()