2013-02-15 107 views
4

我遇到了從ASP.NET WebAPI生成的ISO 8601格式問題,並使用Knockout-Kendo.js綁定到KendoUI DatePicker構件。Knockout-Kendo.js DatePicker/WebAPI/ISO 8601日期綁定

參考文獻:

http://cdn.kendostatic.com/2012.3.1315/styles/kendo.common.min.css 
    http://cdn.kendostatic.com/2012.3.1315/styles/kendo.default.min.css 
    http://cdn.kendostatic.com/2012.3.1315/js/kendo.core.min.js 
    http://cdn.kendostatic.com/2012.3.1315/js/kendo.web.min.js 
    http://ajax.aspnetcdn.com/ajax/knockout/knockout-2.2.1.js 
    http://rniemeyer.github.com/knockout-kendo/js/knockout-kendo.min.js 

HTML:

<span data-bind="text: bigday"></span><br /> 
    <input data-bind="kendoDatePicker: bigday" /> 

的Javascript:

function ViewModel() { 
     var self = this; 
     self.bigday = ko.observable("2013-06-01T00:00:00"); 
     // ISO 8601 date as returned from ASP.NET WebAPI 
    } 

    ko.applyBindings(new ViewModel()); 

http://jsfiddle.net/bschafer/NGLEp/

出於某種原因,該值不綁定到t他KendoDatePicker,但它是有約束力的跨度沒有問題。

+0

最後,我用以下方法進行綁定。 data-bind =「kendoDatePicker:{value:bigday,parseFormats:['yyyy-MM-dd']}」 這允許控件根據區域設置自動調整顯示。我已經更新了小提琴。 謝謝你的幫助nemesv! – bschafer 2013-02-15 21:44:55

回答

4

的Kendo.UI DatePicker的使用following default date time formatMM/dd/yyyy h:mm tt

所以,你只需要與format選項來修改:

<input data-bind="kendoDatePicker: { value: bigday, format: 'yyyy-MM-dd' }" /> 

演示JSFiddle

請注意,還有一個parseFormats,如果您想以一種格式解析日期,但以不同的格式顯示它們,則可以使用它。

+0

感謝您幫助小菜! :) – bschafer 2013-02-15 21:27:31