【发布时间】:2023-04-08 20:13:01
【问题描述】:
我需要将引导日期选择器附加到两个也需要值绑定的输入字段,因为我需要能够根据我的 observable 的变化动态设置输入的值。
到目前为止,绑定仅以一种方式起作用:当我在 datepicker 中选择一个日期时,observable 会正确更新。但是当我在我的视图模型中更改附加的 observable 的值时,输入不会反映更改。
这是我的绑定处理程序:
ko.bindingHandlers.bootstrapDP = {
init: function (element, valueAccessor, allBindingsAccessor) {
var options = allBindingsAccessor().datepickerOptions || {};
$(element).bootstrapDP(options).on("changeDate", function (ev) {
var observable = valueAccessor();
observable($(element).val());
});
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).bootstrapDP("setValue", value);
}
};
在我的视图模型中,我有一个封装 startDate 和 endDate 的对象:
self.dateFilter = {
startDate: ko.observable(),
endDate: ko.observable()
};
这是我的 HTML:
<input type="text" data-bind="bootstrapDP: dateFilter.startDate, value: dateFilter.startDate" />
<input type="text" data-bind="bootstrapDP: dateFilter.endDate, value: dateFilter.endDate" />
我正在使用这个 datepicker 库(noConflict()-mode):https://github.com/eternicode/bootstrap-datepicker
文档在这里:http://bootstrap-datepicker.readthedocs.org/en/stable/
我需要添加/更改/做些什么来获得想要的结果?
【问题讨论】:
-
你能加个小提琴吗?欢呼
-
令我沮丧的是,在这一点上我不能包括小提琴。我在一个网络中,我在小提琴/笔/bin中添加的外部库不会加载:(
-
能否将问题中的链接发布到您正在使用的日期选择器库?
-
我在问题中添加了一个链接,这里又是:github.com/eternicode/bootstrap-datepicker
标签: knockout.js custom-binding