1

我正在尝试使用 jquery-ui Datepicker 创建一个自定义的 knockoutJS 绑定,如下所示:http: //jsfiddle.net/rniemeyer/X82aC/ jQuery UI datepicker change event not catch by KnockoutJS

我在实现 requireJS 后没有运气,我尝试在本文档中的两个示例之后建模:(当前使用后者示例) http://knockoutjs.com/documentation/amd-loading.html

没有错误,但是在选择 Datepicker 后,我的可观察日期没有更新。这是一个实时 URL示例(尝试左上角的“开始日期”输入): http: //www.nealgist.com/stackoverflow/reporting_0_4_3

define(['plugins/knockout','datepicker'], function(ko) {
  return function appViewModel(){
    ...
    this.startDate = ko.observable(new Date());
  }
}

define(['plugins/knockout'], function(ko) {
  ko.bindingHandlers.datePicker = { ... }
}

索引.html:

<input type="text" data-bind="datepicker:$root.startDate" />

如果您有任何想法,我真的可以使用一些帮助,提前谢谢您!

4

1 回答 1

2

我最好的猜测是在 Knockout 之前没有加载 jQuery。如果在 KO 初始加载时 jQuery 可用,则 Knockout 将使用它进行事件绑定。如果其他库正在使用 jQuery 来触发事件,但 KO 没有使用 jQuery 来绑定事件,则不会执行处理程序。

因此,您需要确保首先加载 jQuery。如果必须,您可以将其添加到您的配置中:

 shim: {
        'knockout': {
            deps: [ 'jquery'],
        }
 }
于 2013-09-05T21:14:15.287 回答