2013-07-18 82 views
0

這是我使用的代碼可以通過單擊此鏈接看到 http://jsfiddle.net/fGq5w/1/ 點擊按鈕,我改變日期。但時間也顯示出來。 如何單擊按鈕時單獨顯示一個日期。劍道datepicker顯示日期時間格式與時間如何避免它

HTML代碼

 <input id="myDatePicker" data-bind="value: currentDate" /> 

     <h2>Current Date is:<strong data-bind="text: currentDate"></strong></h2> 

     <input type='button' value='change Date' onclick='changeDate();return false;' /> 

的Javascript

var vm = { 
    currentDate: ko.observable() 
}; 


$(function(){ 

ko.applyBindings(vm); 

$("#myDatePicker").kendoDatePicker(); 

}); 

function changeDate() 
{ 
alert('ok'); 
vm.currentDate(new Date(2014,1,1)); 

} 

回答

0
Your Code with additional functionality to pre-fill the date TextBox. 

    var vm = { 
     currentDate: ko.observable(kendo.toString(new Date(),'MM/dd/yyyy')) 
    }; 


$(function(){ 

    ko.applyBindings(vm); 

    $("#myDatePicker").kendoDatePicker(); 

}); 

    enter code here 

function changeDate() 
{ 
    alert('ok'); 
    vm.currentDate(kendo.toString(new Date(2014,1,1),'MM/dd/yyyy')); 

} 
0

在淘汰賽3.3.0,您可以創建一個擴展來處理,因爲調用格式手動功能並不十分理想:

(在下面的snipper中,我使用了moment.js來解析日期,但是您可以使用我們Ë劍道的日期解析器 - 雖然它不與某些ISO格式的日期工作)

ko.extenders.stripTime = function (target) { 
    var result = ko.pureComputed({ 
     read: target, 
     write: function (value) { 
      if (value) { 
       target(moment(value).format(shell.getDateFormatString())); 
      } 
      else { 
       target(value); 
      } 
     } 
    }).extend({ notify: 'always' }); 

    result(target()); 

    return result; 
}; 

在您的客戶端視圖模型,擴展應用到您的觀察到:

self.SomeDateProperty = ko.observable().extend({ stripTime: null }); 

我建議不要使用當您使用kendo datepicker嘗試從您的observables獲取javascript對象時,請使用ko.toJS - 而是使用ko.mapping(您需要單獨下載JS庫)。

var someJavascriptObject = ko.mapping.toJS(viewModel);