我有一个我用来管理状态的服务,比如用户上次做某事以来的时间。在另一个指令中,我使用区间服务来检查这种状态(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函数中无法正确读取。那更有意义吗?