Wijmo 的 valueChanged 事件 + Angular 上的数据绑定问题 2

Issue with Wijmo's valueChanged event + data binding on Angular 2

我有以下代码,每当用户更改 wj-input-time 的值时运行一个函数:

@Component({
    selector: 'my-app',
    template: '<wj-input-time [step]="1" (valueChanged)="test()"></wj-input-time>'
})
export class AppComponent {

  test() {
    console.log('test');
  }

}

以上工作正常,但是当我将数据绑定添加到输入时,valueChanged 事件在应用程序加载时被触发,并且当用户简单地单击输入时,这不是期望的结果:

@Component({
    selector: 'my-app',
    template: '<wj-input-time [(value)]="testDate" [step]="1" (valueChanged)="test()"></wj-input-time>'
})
export class AppComponent {

  testDate: Date = new Date();

  test() {
    console.log('test');
  }

}

我花了很多时间阅读 Wijmo 的文档,但没有帮助。我错过了什么或做错了什么?

我正在使用 Angular 2 final 和 Wijmo 5.20162.211 eval

这是一个显示问题的 Plunker(检查控制台日志):http://plnkr.co/edit/RFo84NEUbypSWwPPu8Go?p=preview

这里还有截图:

这是因为您构造的日期是精确到秒的,而小部件只精确到分钟。因此,一旦计算出它需要的其他值,小部件就会重写变量 - 即当您单击箭头按钮时。

如果您构建的日期仅精确到给定分钟,则第二条日志消息将不再出现。

@Component({
  selector: 'my-app',
  template: '<wj-input-time [(value)]="testDate" [step]="1" (valueChanged)="test()"></wj-input-time>'
})
export class AppComponent {

  testDate: Date;

  constructor() {
    var d = new Date();
    this.testDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes());
  }

  test() {
    console.log('test');
  }

}

参见调整后的 plnkr code

这绝对是一个错误。即使我向绑定 属性 提供 "null" 值,小部件仍会触发 valueChanged() 事件。

如果输入为空,则无需更改。如果输入是 "initialized",则没有任何变化。

绝对是一个错误。