1

我有一个淘汰赛 observable 保存日期和时间。该 observable 绑定到 kendoDateTime 选择器。我无法在选择器中绑定可观察值。这是相同的 jsfiddle 链接:http: //jsfiddle.net/ye865/74/

JS代码:

function ViewModel() {
    var self = this;
    self.bigday = ko.observable("1997-07-16T19:20:30"); 
}

ko.applyBindings(new ViewModel());

HTML 代码:

<span data-bind="text: bigday"></span>
<input data-bind="kendoDateTimePicker: { value: bigday, format: 'yyyy-MM-dd hh:mm' }" />

可观察值:“1997-07-16T19:20:30”应绑定到 dateTimePicker。

谁能帮我这个?

谢谢。

4

1 回答 1

1

您的格式字符串不正确:您缺少T并且时间应该是HH

format: 'yyyy-MM-ddTHH:mm'

但是你可能想把它放在parseFormats选项中,这样显示器就没有 T:

<input id="text" data-bind="kendoDateTimePicker: { value: bigday, 
    format: 'yyyy-MM-dd HH:mm', parseFormats: ['yyyy-MM-ddTHH:mm']}" />

演示JSFiddle

要在 observable 中以格式化方式选择日期,您需要有一个单独的 observable,因为value日期选择器的属性返回一个Date对象,您需要手动将其格式化为字符串,例如使用computed

function ViewModel() {
    var self = this;
    self.bigday = ko.observable("1997-07-16T19:20:30");
    self.formatted = ko.computed(function() {
        return kendo.toString(self.bigday(), 'yyyy-MM-dd HH:mm');
    });
}

演示JSFiddle

您甚至可以将格式化的值反馈给您的原始值bigday

self.bigday = ko.observable("1997-07-16T19:20:30");
self.bigday.subscribe(function() {
    self.bigday(kendo.toString(self.bigday(), 'yyyy-MM-dd HH:mm'));
});

演示JSFddle

于 2014-04-18T09:08:46.343 回答