2016-05-17 30 views
0

我想檢查$ http.get()的返回值,但我得到未定義的值。這裏是我的VUE js代碼:vue js返回值給出未定義的錯誤

var vm = new Vue({ 
    el: '#permissionMgt', 
    data: { 
     permissionID: [] 

    }, 

methods:{ 
fetchPermissionDetail: function (id) { 
      this.$http.get('../api/getComplaintPermission/' + id, function (data) { 

        this.permissionID = data.permissionID; //permissionID is a data field of the database 
        alert(this.permissionID); //*****this alert is giving me undefined value 

      }); 
     }, 

} 
    }); 

你能告訴我這就是這裏的問題.. BTW $ http.get()被正確獲取的所有數據。

回答

0

您需要檢查什麼類型是從服務器返回的data。如果@ Raj的解決方案沒有解決您的問題,那麼可能permissionID不存在於返回的data中。

做一個colsole.log(data)並檢查是否dataobjectarrayobjects

乾杯!

0

它是一個常見的js錯誤。進行以下更改,它將起作用。

fetchPermissionDetail: function (id) { 

     var self = this; //add this line 
     this.$http.get('../api/getComplaintPermission/' + id, function (data) { 

       self.permissionID = data.permissionID; //replace "this" with "self" 


      }); 
     }, 

} 

的原因是thiswindow匿名函數function()

這是一個js衆所周知的問題裏面。如果你正在使用ES2015可以用箭頭語法(() => { /*code*/ })語法這臺this正確

+0

嗨拉吉,謝謝,但我仍然得到相同的未定義問題。 –

+0

你能更新你的代碼嗎?或者如果可能的話,提供一個jsfiddle? –