【发布时间】:2019-05-06 15:21:35
【问题描述】:
从 API 获取 json 数据时,我无法访问嵌套的 ppts。
我的 Vue 组件
var profileComponent = {
data : function() {
return {
isError : false,
loading : true,
users : null,
activeUser : '',
}
},
mounted() {
axios
.get('https://jsonplaceholder.typicode.com/users')
.then(response => (this.users = response.data))
.catch(error => {console.log(error);this.isError = true})
.finally(() => {console.log('GET request from users');this.loading = false})
},
template : `
<div class="profile">
<div v-if="isError">
<h3>There was an error</h3>
</div>
<div v-else-if='isLoading'>
Loading
</div>
<div v-else>
<select v-model="activeUser">
<option v-for="user in users" v-bind:value="user">{{ user.name }}</option>
</select>
</div>
<div class="temp">
<p>{{ activeUser.address.street }}</p>
</div>
</div>
`}
这不起作用,但是当我将 {{ activeUser.address.street }} 更改为 {{ activeUser.address }} 它开始工作。注意来自 jsonplaceholder 网站的用户对象也包含街道 ppt。我错过了什么?
【问题讨论】:
-
activeUser 默认为空字符串,因此您访问 activeUser.address 它是未定义的,如果您使用 activeUser.address.street 则会出错。
标签: javascript json vue.js