如何从angular2上的setInterval访问构造函数属性

时间:2016-02-07 19:25:23

标签: typescript angular

似乎我无法从setInterval访问构造函数属性,我需要获取并修改属性。我怎么解决这个问题?

startit() {
    console.log(this.page,this.nrpages) //works
    setInterval(function() {
        console.log(this.currentPage,this.nrpages) // undefined undefined

2 个答案:

答案 0 :(得分:7)

使用箭头功能

startit() {
  console.log(this.page,this.nrpages) //works
  setInterval(() => {
      console.log(this.currentPage,this.nrpages);
  }); 

答案 1 :(得分:3)

这里的关键点是this指向当前的执行上下文。因此setInterval函数this内部并不是指外部执行上下文。你可以这样做:

startit() {
    console.log(this.page,this.nrpages) //works
    var thiObj = this;
    setInterval(function() {
        console.log(thisObj.currentPage,thisObj.nrpages) //works