我需要在我的中存储一些数据,这些数据model
是 Unix 标准表示中的日期+时间(从 1970 年开始的毫秒数),但我所做的是set
通过传递类似“Tue Jul 30 2013 12:25:43 GMT+0200 (CEST )”。字符串是我可以从 my 获得的,我view
真的不想在我看来转换它,因为我认为这样model
做是 's 的责任。通过这种方式,功能组织良好且整洁。所以:
我把它放在我的模型中:
initialize: function() {
var self= this;
//conversion of the string date into milliseconds
this.on("change:start_time", function(model, start_time) {
if(start_time !== null){
var data= new Date(start_time);
self.attributes.start_time= data.valueOf();
}
});
...
它就像一个魅力。问题是当您想要设置start_time
属性并同时从我view
的其中一个验证它时:
this.model.set({
start_time: startDatePicker.getLocalDate()
}, {validate : true});
这是怎么回事?在触发我在初始化中设置的事件处理程序之前执行验证。我找到了一种解决方法:将转换移动到一个新函数中,并在 .on 和验证中调用它。但我认为更整洁的东西是可能的。有什么建议吗?