0

当我尝试使用 ID 为“eventStartDate”的输入时,在它被隐藏并再次可见之后 - 它会丢失日期选择器:

<!-- ko 'if': isEvent.forEditing -->
    <div class="editor-field">
        <div class="editor-label">Початок події: </div>
        <input type="datetime" name="eventStartDate" id="eventStartDate" />
        @Html.ValidationMessageFor(model => model.eventStartDate)
    </div>
<!-- /ko -->

有人可以告诉我如何在重新渲染后强制 $("#eventStartDate").datepicker() 初始化这个对象吗?

谢谢你。

UPD:我知道它必须以某种方式通过自定义绑定来完成,但是有人可以帮我弄清楚,到底是怎么回事?..

4

1 回答 1

4

最好的想法是考虑使用自定义绑定,如此答案中的一个:knockoutjs databind with jquery-ui datepicker或此答案:jQuery UI datepicker change event not catch by KnockoutJS

如果您不需要双向数据绑定,那么最小的自定义绑定将很简单:

ko.bindingHandlers.datepicker = {
   init: function(element) {
       $(element).datepicker();

       //handle disposal (if KO removes by the template binding)
       ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
            $(element).datepicker("destroy");
       });
   }  
};
于 2013-06-13T16:29:01.490 回答