Javascript Aurelia Binding Change.delegate未触发(JQueryUI日期选择器)

Javascript Aurelia Binding Change.delegate未触发(JQueryUI日期选择器),javascript,jquery-ui,datepicker,aurelia,Javascript,Jquery Ui,Datepicker,Aurelia,我试着用一个jqueryui的日期选择器,我几乎可以让它工作了。我有一个自定义组件,看起来像这样(在线获得了一些代码) 以下是视图模板: <template> <div class="checkbox"> <label><input type="checkbox" checked.bind="value.checked & twoWay">${label}</label> </div>

我试着用一个jqueryui的日期选择器,我几乎可以让它工作了。我有一个自定义组件,看起来像这样(在线获得了一些代码)

以下是视图模板:

<template>
    <div class="checkbox">
        <label><input type="checkbox" checked.bind="value.checked & twoWay">${label}</label>
    </div>
    <div show.bind="datepicker == 'true' && value.checked">
        <label class="col-xs-1" style="padding: 0;">from</label>
        <div class="col-xs-11">
            <input class="form-control datepicker" type="text" value.bind="value.date & twoWay"/>
        </div>
    </div>
</template>
 <input class="form-control" ref="datepicker" type="text" 
        value.bind="value.date & twoWay"/>

${label}
从…起
我是这样使用它的:

<checkbox datepicker="true" label.bind="'Checkbox label'" value.bind="filters['MyObject']" change.delegate="AlertSomething()"></checkbox>


问题是当我使用日期选择器选择日期时。更改事件未被触发。如果我手动输入某个内容,它就会被触发。当复选框被更改时,它也会被激发。这里我遗漏了什么?

问题可能是您正在自定义元素模板中的
输入
元素上触发自定义事件,而不是自定义元素本身

线路

.on("change", e => this.fireEvent(e.target, "input"));
需要成为

.on("change", e => this.fireEvent(this.element, "change"));
另外,有点离题,请注意,如果在多个地方使用此自定义元素,则使用
$(“.datepicker”)
可能会导致应用程序出现错误。与其这样做,不如使用
ref
custom属性在viewmodel上为要传递给jQuery的元素创建一个属性。因此,在这种情况下,您需要在模板中执行以下操作:

 <input class="form-control" ref="datepicker" type="text" 
        value.bind="value.date & twoWay"/>


然后将VM代码更改为使用
$(this.datepicker)

实际上,我遇到了一个问题。如何将ref值传递给自定义元素?我在同一个父级中使用了大约10个日期选择器(自定义元素)。如何传入唯一的引用id?