Knockout-Kendo.js DatePicker / WebAPI / ISO 8601日期绑定

时间:2013-02-15 21:03:10

标签: knockout.js asp.net-web-api kendo-ui iso8601

我遇到了从ASP.NET WebAPI生成的ISO 8601格式以及使用Knockout-Kendo.js绑定到KendoUI DatePicker小部件的麻烦。

参考文献:

    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/

由于某种原因,该值不会绑定到KendoDatePicker,但它会绑定到没有问题的范围。

1 个答案:

答案 0 :(得分: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