2

我有以下代码:

 <input data-role="datepicker" data-bind="value:referralData.Referral.from_date" />

使用这样绑定的值:

from_date: "2014-01-01T00:00:00"

在对象中,它不再绑定。我努力了:

       <input data-role="datepicker" data-bind="value:referralData.Referral.from_date, parseFormats:'YYYY-MM-DD\Thh:mm:ss'" />

但它指出:未捕获的错误:DatePicker 小部件不支持 parseFormats 绑定。所以我相信我缺少一个语法错误。

有谁知道如何告诉日期选择器选择这个日期?

4

3 回答 3

2

data-bind用于实时绑定选项。如果您只想使用配置选项,您可以使用data-parse-formats

<input data-role="datepicker" 
 data-parse-formats="YYYY-MM-DDThh:mm:ss" 
 data-bind="value:referralData.Referral.from_date" />

此外,如果您想使用 24 小时制,您应该使用此格式配置来获取时间:HH:mm:ss

于 2014-04-08T18:17:50.657 回答
1

@Lars 的解决方案有效,但日期格式说明符错误(截至 Kendo 版本 2014.3.119)。它应该是yyyy-MM-ddTHH:mm:ss(年和日小写,小时大写):

<input
    data-role="datepicker" 
    data-bind="value:referralData.Referral.from_date" 
    data-parse-formats="yyyy-MM-ddTHH:mm:ss" />

作为一个补充,如果有时你需要,你实际上可以传递不止一种格式,根据文档,像这样:

<input 
    data-role="datepicker" 
    data-bind="value:referralData.Referral.from_date" 
    data-parse-formats="['yyyy-MM-ddTHH:mm:ss','yyyy-MM-dd']" />
于 2015-03-12T09:31:48.670 回答
0

您可以为日期格式创建自定义绑定:

自定义绑定

kendo.data.binders.widget.dateFormat = kendo.data.Binder.extend({
  init: function (widget, bindings, options) {
    //call the base constructor
    kendo.data.Binder.fn.init.call(this, widget.element[0], bindings, options);
  },
  refresh: function () {
    var that = this,
      value = that.bindings["dateFormat"].get(); //get the value from the View-Model
    $(that.element).data("kendoDatePicker").setOptions({
      format: value
    }); //update the widget
  }
});

HTML

<div id="report1" data-role="view" data-model="APP.models.report1">
    <input data-role="datepicker" data-bind="value: start_date, dateFormat: date_format" />
</div>

模型

window.APP = {
  models: {
    report1: kendo.observable({
        start_date: new Date(),
        date_format: "dd/MM/yyyy",
    }),
  }
};

var app = new kendo.mobile.Application($(document.body), {
  initial: "report1",
  skin: "default",
});
于 2019-05-24T20:06:06.987 回答