2016-07-19 24 views
5

Tôi nhận được 'không thể đọc được đẩy tài sản không xác định' lỗi: đây là mã vueJs tôi:VueJS: của router (trong lời hứa) Lỗi Loại: Không thể đọc thuộc 'đẩy' không xác định

data:{ 
CoIsignedListUID:[] 
} 
methods:{ 

fetchCoISigned: function() { 
      this.$http.get('/cimsm/public/api/fetchCoIsigned/' + this.conflictofInterest.complaintID).then(function (response) { 
       var data = response.data; 
       this.$set('CoIsignedList', data); 
       data.forEach(function (detail) { 
        this.CoIsignedListUID.push(detail.uID); 
       }); 
      }); 

là những gì tôi làm sai? Cảm ơn

+0

Hãy thử điều này: 'này $ data.CoIsignedListUID.push' thay vì' this.CoIsignedListUID.push' – Maraboc

Trả lời

6

this.CoIsignedListUID không được định nghĩa

lẽ vì this không phải là this bạn nghĩ rằng đó là

bạn nên làm

var _this = this 

ngoài chức năng và sau đó

_this.CoIsignedListUID.push(detail.uID); 

Alternativel y, bạn có thể sử dụng cú pháp mũi tên ES2015.

Thay vì:

.then(function (response) {} 

Sử dụng:

.then((response) => {} 

Các 'này' bây giờ đã có bên trong hàm vì vậy không cần thiết phải tạo ra một biến mới. Chi tiết đầy đủ Here.

+0

Đó làm việc nhờ –

0

this trong forEach gọi lại không phải là vue.js this. bạn có thể thực hiện việc này để giải quyết vấn đề này.

this.$http.get("...").then(function(response){ 
    var data = response.data; 
    this.$set('CoIsignedList', data); 
    var that = this; 
    data.forEach(function (detail) { 
     that.CoIsignedListUID.push(detail.uID); 
    }); 
}); 
+0

Nhờ đó tiếp cận tác phẩm. –

Các vấn đề liên quan