インスタンス化時にモデルに渡された値が空かどうかを確認しようとしています。もしそうなら、それらは保存されるべきではなく、で取得されるべきではありませんmodel.get('value')
モデルのインスタンス化:
# Model
@latLongPicker = new Vamos.Models.LatLongPicker({
latitude : $('.latlongpicker .data input[name="campaign[latitude]"]').val(),
longitude : $('.latlongpicker .data input[name="campaign[longitude]"]').val(),
reach : $('.latlongpicker .data input[name="campaign[reach]"]').val()
}, { validate : true })
私のモデル:
class Vamos.Models.LatLongPicker extends Backbone.Model
defaults :
reach : 5000
reachMin : 1000
reachMax : 10000
lattitude : 52.528239
longitude : 13.415677
initialize : ->
_.bindAll @
console.log @toJSON()
console.log @defaults
console.log @get 'reach'
validate : (attrs) ->
if attrs.reach == '' || attrs.reach == 0
return 'Reach cannot be zero or empty'
''
モデルが検証済みであることはわかりますが、console.log には「リーチ」が未定義であることが示されています。
私の検証メソッドが失敗すると、@get 'reach' はデフォルト値を返すと思います。私は何が欠けていますか?
私にとって論理的な方法は、モデルに渡す前ではなく、モデル内のすべてを検証することです。
私は間違っているかもしれないので、バックボーンで適切に検証する方法をよりよく理解するためにここに質問しています。