1

我有一个绑定到模型中的值的输入。

     <input type="text" class="form-control" [(ngModel)]="currentDate">

我有一个用于填充此输入的日期选择器。当通过日期选择器选择一个值时,输入似乎不会更新模型,因为它没有在代码中触发更远的管道。

但是,如果我手动输入输入字段,那么 ngModel 似乎确实会更新,因为管道会触发以根据新值进行过滤。我已将“更改时”处理程序绑定到输入,该处理程序在键入或使用日期选择器时触发。

    $('#datepicker').datepicker().on('changeDate', function(e){
        //Fires on change
    })

有没有办法手动触发 ngModel 更改事件,或者是否有其他人知道的更优雅的解决方案?

4

3 回答 3

1

你可以这样做,触发 Angular2 的变化检测..

看到这个笨蛋

setTimeout(() => {
    $('#myinput').val("changed..");

    var evt = new Event("input", {"bubbles":true, "cancelable":false});

    $('#myinput')[0].dispatchEvent(evt);

}, 5000);
于 2016-08-23T15:02:29.523 回答
0

使用 Primeng 的日历非常有用https://www.primefaces.org/primeng/#/calendar

于 2017-06-09T16:18:03.320 回答
0

使用 datepicker 自己的事件,我可以手动更新模型值。

AttachDateChangeHandler(): void {
    $('#datepicker').datepicker().on('changeDate', (e)=> {
        this.currentDate = e.date.***()
    })
}

感谢 Madhu Ranjan 的建议。

于 2016-08-23T14:42:40.210 回答