在Vue.js予取的JSON文件的某些数据是这样的:Vue.js不能访问到嵌套属性的数据对象
export default {
data() {
return {
data: []
}
},
created() {
this.fetchData();
},
methods: {
fetchData() {
$.getJSON('data/api.json', function(el) {
this.data = el;
}.bind(this)),
}
}
}
取出的数据具有以下结构:
{
time: '17:00',
pick: {
box: {
single: 1,
multi: 2
}
}
}
当我尝试进入{{ data.pick.box }} or {{ data.pick.box.single }}
在我的部分,我总是收到此错误信息:
vue.js?3de6:2963 Uncaught TypeError: Cannot read property 'box' of undefined
at Proxy.render (eval at <anonymous> (app.js:126), <anonymous>:4:46)
at VueComponent.Vue._render (eval at <anonymous> (app.js:139), <anonymous>:2954:22)
at VueComponent.eval (eval at <anonymous> (app.js:139), <anonymous>:2191:21)
at Watcher.get (eval at <anonymous> (app.js:139), <anonymous>:1656:27)
at new Watcher (eval at <anonymous> (app.js:139), <anonymous>:1648:12)
at VueComponent.Vue._mount (eval at <anonymous> (app.js:139), <anonymous>:2190:19)
at VueComponent.Vue$3.$mount (eval at <anonymous> (app.js:139), <anonymous>:5978:15)
at VueComponent.Vue$3.$mount (eval at <anonymous> (app.js:139), <anonymous>:8305:16)
at init (eval at <anonymous> (app.js:139), <anonymous>:2502:11)
at createComponent (eval at <anonymous> (app.js:139), <anonymous>:4052:9)
的是对访问深层嵌套对象有任何限制吗?例如,当我打电话给{{ data }}
时,我将整个数据结构正确显示为一个字符串。
正如娜拉所说,这里是小提琴:jsfiddle
你可以设置一个的jsfiddle? – Nora
第一次渲染'data'时是'[]',并且没有任何'.pick.box'属性。 – sobolevn
你可以使用[v-if](https://vuejs.org/v2/guide/conditional.html#v-if),正如我在回答中提到的,如果你不想使用一个额外的变量。 – Saurabh