JSON控制台显示该对象,但在使用Vue.js后出现未定义的属性错误

时间:2015-07-06 09:50:11

标签: jquery mysql json database vue.js

好的,首先我是从这个格式的数据库中抓取json对象...

{
    "position": "slider",
    "size": "large",
    "type": "slider",
    "params":[{
        "id": "10", 
        "title": "testfea",
        "extension": "jpg",
        "type": "image",
        "path": "\/image\/1.jpg"        
    }]    
}

我使用grep做了一些过滤......

 // get all the large widgets
    var largeWidgets = $.grep($widgetsData, function(e){
        var farr = $.parseJSON(e.params);
        return farr.size == 'large';
    });

    // get all the widgets where the position equals the live one
    var filteredByPos = $.grep(largeWidgets, function(e){
        var farr = $.parseJSON(e.params);
        return farr.position == that.position;
    });

我使用vue.js所以我将它分配给数据对象...

this.fullWidget = filteredByPos;
var json = fullWidget[0].params;
console.log(json.params[0]);

所以首先它记录了Object,但是当我尝试访问属性时它会给我这个错误:

  

未捕获的TypeError:无法读取属性' params'未定义的

在这个位置

var json = $.parseJSON(JSON.stringify(that.fullWidget[0].params));

特别是[index] .property

that.fullWidget[0].params

2 个答案:

答案 0 :(得分:1)

要么因为fullWidget不是数组(或空数组),要么是因为您使用的是fullWidget而不是this.fullWidget

答案 1 :(得分:0)

因为fullWidget不是一个数组而只是一个对象。尝试使用fullWidget.params