2016-08-09 33 views
0

如果我使用此。$ onInit();來自其他功能的工作。 但如果使用函數調用它給出這是未定義的錯誤。這是在angularjs fullstack MEAN中未定義的。當使用間隔

我是angularjs中的新成員。請幫我解決這個問題。

類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方法簡單讀取轉換的最後消息。

回答

0

在控制器的頂部;

var self = this; 

所以自我永遠是指你的構造和$的OnInit(),您使用的CA作爲

self.users = conversionArray 
+0

我想上面的解決方案,但它給予同樣的錯誤。我使用 var self = this; $ interval(function(){self。$ onInit();},10000); 現在它的工作。無論如何感謝您的建議。 –