未捕获的TypeError:无法读取Object.success中未定义的属性“push”

时间:2017-12-16 20:45:28

标签: javascript html arrays vue.js vuejs2

我正在使用vuejs2和laravel 我有这个vuejs2代码

var path = '/project/public/';
new Vue({
el:'#users',
data:{
    message:'',
    test: [1,2,3],  
},
methods:{
    searchData: _.debounce(function(){
        if(this.message != '')
        {
            $.ajax({
                type:'POST',
                url: path+'usersearch',
                data: {data:this.message},
                success:function(data)
                {
                    console.log(data[0]['id']);
                      this.test.push(4)
                },
                error:function()
                {
                    console.log("error");
                }
            });
        }
    },1000)
}
})

我也有这个HTML代码

<tr>
    <td v-for='test in test'>@{{test}}</td>
</tr>

在没有请求发送时工作 并在html 1 2 3中显示我,但当我有要求回来 这段代码只能正常工作

console.log(data[0]['id']);

但是这个

this.test.push(4)

发回给我这个错误

Uncaught TypeError: Cannot read property 'push' of undefined     at Object.success

我如何向vuejs2数组中添加内容 谢谢

1 个答案:

答案 0 :(得分:0)

在推送对象之前,需要将其初始化为空数组

  this.test = [];

修改

使用箭头功能时,不会覆盖此属性,仍会引用组件实例。

 success:(data) => {
    console.log(data[0]['id']);
    this.test.push(4)
 }