绑定函数到$ interval

时间:2016-05-18 21:17:18

标签: angularjs typescript

我有一个我用来管理状态的服务,比如用户上次做某事以来的时间。在另一个指令中,我使用区间服务来检查这种状态(lastActivity),但它没有得到更新:

// myservice

    start() {
        this.$document.on(this.DOMevents, this.updateActivity);
    }

    stop() {
        this.$document.off(this.DOMevents, this.updateActivity)
    }

    updateActivity() {
        this.lastActivity = new Date();
    }

//其他指令

           $interval(() => {

               console.log(myservice.lastActivity.getTime()); // lastActivity is just a javascript Date

               }
           }, 1000);

我认为这是封闭问题,因为$ interval在每1000毫秒运行之前获得myservice所以时间总是相同的。有没有办法将其传递给更新?我在docs https://docs.angularjs.org/api/ng/service/ $ interval中看到了 有一个pass选项作为最后一个参数,但由于我使用的是Typescript和较早版本的Angular,我将无法使用此功能。还有另一种方法吗?感谢。

也许这解释了我的问题更清楚:

var now = new Date().getTime();
                  $interval(() => {
                      console.log(now);
                  }, 1000);

我有一些服务跟踪时间等。在另一个指令中,经过一段时间后,我想检查这个值并做一些逻辑。问题是,now始终是同一时间。因此,在myservice中,lastActivity时间在$ interval函数中无法正确读取。那更有意义吗?

0 个答案:

没有答案