我有一个包含日期和时间的淘汰可观察对象。该可观察对象绑定到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。
有人能帮我吗?
谢谢。
您的格式字符串不正确:您缺少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。
要在可观察对象中以格式化的方式显示所选日期,您需要有一个单独的可观察对象,因为日期选择器的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。