【问题标题】:datetimpicker custom binding knockoutdatetimepicker 自定义绑定淘汰赛
【发布时间】:2014-04-23 14:18:53
【问题描述】:

我使用 https://github.com/xdan/datetimepicker/blob/master/jquery.datetimepicker.js 在我的应用程序中使用 datetimpicker 而不是 datepicker 我使用以下绑定

   ko.bindingHandlers.datetimepicker = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        var $el = $(element);

        //initialize datepicker with some optional options
        var options = allBindingsAccessor().datepickerOptions || {};
        $el.datetimepicker(options);

        //handle the field changing
        ko.utils.registerEventHandler(element, "change", function () {
            var observable = valueAccessor();
            var $el = $(element);
            observable($el.datetimepicker("getDate").Value);
        });

        //handle disposal (if KO removes by the template binding)
        ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
            $el.datetimepicker("destroy");
        });

    },
    update: function (element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor()),
            $el = $(element),
            current = $el.datetimepicker("getDate").Value;

        if (value - current !== 0) {
            $el.datetimepicker("setDate", value);
            console.log("just set", $el.datetimepicker("getDate").Value);
        }
    }
};

但是这里 $el.datetimepicker("getDate") 在我使用 datepicker 时返回 html 元素而不是日期,它工作正常,但不适用于日期时间选择器

【问题讨论】:

  • 你能用小提琴重新创建这个吗?

标签: knockout.js datetimepicker


【解决方案1】:

根据文档,获取您使用的输入字段的值

new Date($el.val())

而不是

$el.datetimepicker("getDate").Value;

【讨论】:

  • 它可以工作,但它返回纯字符串而不是日期对象我可以使用 new Date($el.val())
  • 是的,应该这样做。我也修改了上面的代码。
猜你喜欢
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-13
  • 2014-03-07
  • 1970-01-01
相关资源
最近更新 更多