当我尝试使用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:我知道必须以某种方式通过自定义绑定来完成,但有人可以帮我弄明白,究竟是什么?..答案 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");
});
}
};