2016-11-10 68 views
1

我有一个不确定的,当我提醒帕拉姆使用vue.js从阿贾克斯获取在阿贾克斯获取数据时得到属性未定义的,这里是我的代码。使用vue.js

test.json回报:

[ 
    {isActive: false,name: test} 
] 

JS:

new Vue({ 
el: '#viewport', 
data: { 

    test_data: [] 
}, 
mounted: function() { 
    this.fetchTestData(); 
}, 
methods: { 
    fetchTestData: function() { 
     $.get(test.json, function (data) { 

      this.test_data = data; 
      alert(this.test_data.isActive); 
     }); 

    } 
} 
}); 

我vue.js的初学者,希望有一个回复,谢谢。

+0

test_data是一个数组。试试'this.test_data [0] .active' – Rajesh

+0

嗨Rajesh,感谢您的回复,但也未定义。 – Winston

+1

你可以检查一下'数据'日志。如果它的字符串,你可能需要使用'JSON.parse'解析它的对象 – Rajesh

回答

1

如果您是从test.json文件中获取这个数据, 首先它必须是这样的,因为这是无法验证的JSON:

[ 
    { 
    "isActive": false, 
    "name": "test" 
    } 
] 

,你需要使用bind因为this不是指Vue的实例

fetchTestData: function() { 
     $.get('test.json', function (data) { 
      this.test_data = data; 
      alert(this.test_data[0].isActive); 
     }.bind(this)); 
    } 

和访问像this.test_data[0].isActive数据,因为它是一个数组

+1

完全[0],因为该阵列。 或可以给'this.test_data =数据[0]'和'警报(this.test_data.isActive);' – GiuServ

+0

我有遵循上述步骤,提醒this.test_data显示正确的数据,但警报this.test_data.isActive显示未定义。 – Winston

+0

@Winston注意到'[0]'因为它是一个数组,你试过吗? –