开发者问题收集

VueJS:未捕获(承诺中)TypeError:无法读取未定义的属性“push”

2016-07-19
26003

我收到“无法读取未定义的属性推送”错误:这是我的 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);
                });
            });

我做错了什么?谢谢

2个回答

this.CoIsignedListUID 未定义

可能是因为 this 不是您认为的 this

您应该执行

var _this = this

在函数外部,然后

_this.CoIsignedListUID.push(detail.uID);

或者,您可以使用 ES2015 箭头语法。

而不是:

.then(function (response) {}

使用:

.then((response) => {}

'this' 现在在函数内部可用,因此无需创建新变量。完整详细信息 此处

gurghet
2016-07-19

foreach回调中的此 不是vue.js this 。 您可以这样做来解决此问题。

697475695
kangbin
2016-07-20