我无法读取未定义的属性推送'错误:这是我的vueJs代码:
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);
});
});
我在做错了什么?感谢
答案 0 :(得分:8)
this.CoIsignedListUID
未定义
可能是因为this
不是您认为的this
你应该做
var _this = this
在函数之外,然后
_this.CoIsignedListUID.push(detail.uID);
或者,您可以使用ES2015箭头语法。
而不是:
.then(function (response) {}
使用:
.then((response) => {}
现在可以在函数内部使用'this',因此无需创建新变量。完整详情Here。
答案 1 :(得分:0)
this
不是vue.js this
。
你可以这样做来解决这个问题。
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);
});
});