1

每当用户更改 的值时,我都有以下代码运行一个函数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

这里还有截图: 在此处输入图像描述 在此处输入图像描述

4

2 回答 2

1

这是因为您构建的日期精确到秒,但小部件只精确到分钟。因此,小部件在计算出它需要的其他值后会重写该变量——即当您单击箭头按钮时。

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

@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 代码

于 2016-12-01T19:51:34.587 回答
0

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

如果输入为空,则无需更改。如果输入被“初始化”,则没有任何变化。

绝对是一个错误。

于 2018-10-26T22:23:37.390 回答