我需要在我的model
中存儲一些數據,這些數據是Unix標準表示(1970年以來的毫秒)中的日期+時間,但我所做的是通過傳遞字符串「Tue Jul 30 2013 12:25:43 GMT + 0200(CEST)「。字符串是我可以從我的view
中獲得的字符串,我不想在我看來轉換它,因爲我認爲這是model
的義務。通過這種方式,功能組織良好,整潔。所以:數據處理+驗證的最佳做法
我把這個在我的模型:
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
S的一個驗證它:
this.model.set({
start_time: startDatePicker.getLocalDate()
}, {validate : true});
這裏有什麼事? 驗證是在我設置的事件處理程序在初始化之前執行的,觸發。我找到了一個解決方法:將轉換移動到一個新函數中,並在.on和驗證中調用它。但我覺得有些更新是可能的。任何建議?
是的,我已經考慮過您提到的第一種方法,但我個人認爲您正在分散功能,應該卡在模型類中,而不是視圖中。 – Bertuz
第二個是非常酷的,它允許我一點一點地發現骨幹下的什麼東西!謝謝! – Bertuz