Angular2 - 在组件中使用ng2-idle EventTargetInterruptSource来创建多个实例时出现问题

时间:2017-05-11 19:18:01

标签: ng-idle

我有一个Angular2项目,它在屏幕上有2个组件实例(DisplayAreaComponent)。我希望每个DisplayAreaComponent实例都有自己的Idle实例(根据README允许),所以我在组件构造函数中注入Idle然后使用EventTargetInterruptSource用于中断源。但是,中断源没有响应我的鼠标点击,这让我觉得我设置错误。

的AppModule:

... 
imports: [
  BrowserModule,
  FormsModule,
  HttpModule,
  NgIdleModule.forRoot()
],
...

DisplayAreaComponent构造函数:

  constructor(
      private element: ElementRef,
      private idle: Idle
  )
  {
    // give the idle instance a unique name
    idle.setIdleName("display-area-" + this.displayId);

    // sets an idle timeout of 5 seconds, for testing purposes.
    idle.setIdle(5);

    // clears the timeout
    idle.setTimeout(0);

    // sets the interrupts for this component, in this case, things like clicks, scrolls, touches to the document
    idle.setInterrupts([new EventTargetInterruptSource(this.element.nativeElement, "mousedown touchstart")]);

    idle.onIdleStart.subscribe(() => this.idleStartHandler());
    idle.onIdleEnd.subscribe(() => this.idleEndHandler());

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

我猜你有

idle.watch()

函数调用缺失。