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

时间:2016-09-21 15:35:23

标签: javascript events angular event-handling wijmo5

每当用户更改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

此处还有截图: enter image description here enter image description here

2 个答案:

答案 0 :(得分: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 code

答案 1 :(得分:0)

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

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

绝对是个错误。

相关问题