我正在使用带有淘汰赛的 Twitter Bootstrap.DatePicker。我遇到的问题是我无法让它正常工作。当有初始日期时它工作正常,但是当没有初始日期时,我收到以下错误:Uncaught TypeError: Cannot call method 'getTime' of undefined
HTML
<div id='target'>
<input data-bind='datepicker: test_date'/>
<div data-bind="text: test_date"></div>
<input data-bind='datepicker: test_date_empty'/>
</div>
绑定处理程序
ko.bindingHandlers.datepicker = {
init: function(element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || {};
$(element).datepicker(options);
//when a user changes the date, update the view model
ko.utils.registerEventHandler(element, "changeDate", function(event) {
var value = valueAccessor();
if (ko.isObservable(value)) {
value(event.date);
}
});
},
update: function(element, valueAccessor) {
var widget = $(element).data("datepicker");
//when the view model is updated, update the widget
if (widget) {
widget.date = ko.utils.unwrapObservable(valueAccessor());
if (!widget.date) {
return;
}
if (_.isString(widget.date)) {
widget.date = new Date(widget.date);
}
widget.setValue();
}
}
};
var model = {
test_date: ko.observable(),
test_date_empty: ko.observable()
};
ko.applyBindings(model, $("#target")[0]);
model.test_date("2012/04/04")
model.test_date_empty()
我创建了一个 JSFiddle,其中演示了行为http://jsfiddle.net/DirkMolman/ACKyp/5/
我正在使用淘汰赛 2.3.0 和 Bootstrap.datepicker 1.1.3.1
我希望有人能帮我解决这个问题。