2014-10-28 107 views
0

我使用的是momentjs对象在我的模型:骨干验证(momentjs)

var MyModel = Backbone.Model.extend({ 
    defaults: { 
     iamString: "hello", 
     iamDate: moment() 
    }, 

    validation: { 
     iamString: { 
      required: true, 
      fn: function (value, attr, computedState) { 
       alert('Validation of iamString get called!'); 
      } 
     }, 
     iamDate: { 
      required: true, 
      fn: function (value, attr, computedState) { 
       alert('Validation of iamDate get called!'); 
      } 
     } 
    }, 

    print: function() { 
     return this.get('iamString') + ' ' + this.get('iamDate').format('YYYY-MM-DD hh:mm:ss'); 
    } 
}); 

如果我更新的模式,iamString验证获取调用,但iamDate验证从未获得调用。

这是jsfiddle sample。我怎样才能使iamDate验证成为可能?

回答

0

如果您调用moment()函数,则必须添加该格式。

$('#validate').click(function() { 
     mymodel.set({ 
      iamString: 'bye bye', 
      iamDate: moment('2014-05-05 12:12:12').format('YYYY-MM-DD hh:mm:ss') 
     }, { 
      validate: true 
     }); 
     alert(mymodel.print()); 
    }); 
+0

我为什么要?我想在我的模型中有时刻对象,而不是它的字符串表示。 – 2014-10-28 12:09:21

+0

我明白了。 将是“iamDate”的一个对象。我认为Backbone.Validation不支持这一点。你必须写自己的验证功能.. – 2014-10-28 15:34:06