虽然报错TypeError: Cannot read property '0' of undefined,
但是数据资料都有正常显示出来,只是想明白什么原因报错,麻烦各位大神了。
JSON部份
{
"page3_a":[
{
"title":[
{"title":"tt"},
{"title":"ta"},
{"title":"tb"},
{"title":"tc"}
]
}
],
"page3_a":[
{
"title":[
{"title":"tt"},
{"title":"ta"},
{"title":"tb"},
{"title":"tc"}
]
}
],
"page3_c":[
{
"title":[
{"title":"tt"},
{"title":"ta"},
{"title":"tb"},
{"title":"tc"}
]
}
],
}
Vue部份
var app=new Vue({
el:"app",
data:{
page3:[]
},
created:function(){
var _this=this;
$.ajax({
url:'page3.json',
type:'GET',
dataType:'json',
success:function(res){
_this.page3=res;
}
})
}
})
Html部份
<div id="app">
<div v-for="v in page3.page3_a[0].title">
<span>{{v.title}}</span>
</div>
<div v-for="v in page3.page3_b[0].title">
<span>{{v.title}}</span>
</div>
<div v-for="v in page3.page3_c[0].title">
<span>{{v.title}}</span>
</div>
</div>
在JSON请求回来的时候已经渲染页面了,此时你给的
page3
的默认值是[]
,所以page3.page3_a
是undefined
,你再使用[0]
当然就会报错了,你需要在初始化data
的时候,把需要的结构都初始化,代码如下:这样在数据没有回来的时候访问
page3.page3_a[0].title
才不会报错。