这在angularjs fullstack MEAN中是未定义的。与间隔一起使用时

时间:2016-08-09 09:33:30

标签: angularjs

如果我正在使用它。$ onInit();来自其他功能的工作。 但如果用函数调用它会给出一个未定义的错误。

我是angularjs的新手。请帮我解决这个问题。

class ChatComponent {

    constructor($http, $scope, socket, Auth, $interval) {
      this.$http = $http;
      this.socket = socket;
      this.users = [];
      this.setView = false;
      this.suggestionResponse = {}; 
      this.$interval = $interval;  
      this.activeConversion = {};   


    this.currentUser = Auth.getCurrentUser()._id;
        console.log(this.currentUser);


     $interval(function() { this.$onInit; },10000);


    }

   $onInit() {
    this.$http.post('/api/conversions/getconversation', {
          userId: this.currentUser
        }).then(response => {
            var conversionArray = response.data[0].conversions; 
            for(var i=0; i < conversionArray.length; i++){

                var metch = this.mergeArray(conversionArray[i]._id, response.data[0].messages); 
            if(metch){ 
                conversionArray[i].message = metch;
            }
            else{
                conversionArray[i].message = [];
            }

            }
            this.users = conversionArray;

        });
    }

  }



}

$ onInit方法简单获取转化的最后消息。

1 个答案:

答案 0 :(得分:0)

在控制器的顶部;

var self = this;

所以self总是引用你的构造函数,并且你可以在$ onInit()中使用

self.users = conversionArray