Knockoutjs和JQuery datepicker。元素在重新渲染后丢失了日期选择器

时间:2013-06-13 16:14:34

标签: knockout.js jquery-ui-datepicker

当我尝试使用id为“eventStartDate”的输入时,隐藏它后再次显示 - 它会丢失datepicker:

<!-- 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:我知道必须以某种方式通过自定义绑定来完成,但有人可以帮我弄明白,究竟是什么?..

1 个答案:

答案 0 :(得分:4)

最好的想法是考虑使用custom binding之类的答案:knockoutjs databind with jquery-ui datepicker或此答案:jQuery UI datepicker change event not caught 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");
       });
   }  
};
相关问题