Twitter bootstrap 用敲除填充引导数据采集器

Twitter bootstrap 用敲除填充引导数据采集器,twitter-bootstrap,knockout.js,bootstrap-datepicker,Twitter Bootstrap,Knockout.js,Bootstrap Datepicker,我有一个bootstrap datepicker小部件,可以很好地处理Knockout:也就是说,我可以选择一个日期,并且模型可以正确地更新。然而,当我第一次初始化我的模型时,我似乎无法最初填充日期 这是我的HTML: <div class="controls"> <input type="text" class="datepicker" data-date-format="dd-mm-yyyy" data-bind="datepicker: someDate" /> &

我有一个bootstrap datepicker小部件,可以很好地处理Knockout:也就是说,我可以选择一个日期,并且模型可以正确地更新。然而,当我第一次初始化我的模型时,我似乎无法最初填充日期

这是我的HTML:

<div class="controls">
<input type="text" class="datepicker" data-date-format="dd-mm-yyyy" data-bind="datepicker: someDate" />
<div data-bind="text: someDate"></div>
以及相应的JSFIDLE:


如何在第一次绑定模型时填充小部件?

value:someDate
无疑是一种更明确的方法,但您也可以在init回调中调用jquery datepicker的setDate方法,如中所示


您可以在此处检查工作样本(取自)


正如您所说,使用
value:myDate
解决了您的问题。

您可以在此处查看工作样本(取自),谢谢!我在绑定中添加了
值:someDate
。如果你把它作为一个答案贴出来,我会接受的。还有什么问题吗?我也在尝试更新可观察的,用一个超时来模拟延迟。它正在更新模型,但不是小部件:。知道为什么吗?我不知道你的代码出了什么问题,但它与日期选择器的工作方式有关,而不是击倒。这是一个版本,它以与init函数相同的方式设置日期
var self = this;

$('.datepicker').datepicker();    

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());
            widget.setValue();            
        }
    }
}; // end KO binding datepicker

function AppViewModel() {
    self.someDate = ko.observable(new Date('01/01/2004'));    
}

// Activates knockout.js
ko.applyBindings(new AppViewModel());