我通过向Google Places API发出GET请求来获取景点信息。不幸的是,有些景点有一个opening_hours
对象字段,它本身具有weekday_text
和open_now
字段,但是有些景点却没有,所以我得到了错误
<p v-if='sight.opening_hours && sight.opening_hours.open_now'>Open now</p>
<p v-if='sight.opening_hours && !sight.opening_hours.open_now'>Closed now</p>
<p v-if='sight.opening_hours && sight.opening_hours.weekday_text' v-for='day in this.sight.opening_hours.weekday_text'>{{ day }}</p>
我的v-if是否不涵盖
sight.opening_hours
和sight.opening_hours.weekday_text
不存在的情况?我认为错误来自v-for,因为如果我删除它,一切都会正常。 最佳答案
https://vuejs.org/v2/guide/conditional.html#v-if-with-v-for
不建议同时使用v-if和v-for
<div v-if='sight.opening_hours && sight.opening_hours.weekday_text'>
<p v-for='day in this.sight.opening_hours.weekday_text'>{{ day }}</p>
</div>
或者,如果您不需要打印
div
,则可以使用template
<template v-if="sight.opening_hours && sight.opening_hours.weekday_text">
<p v-for='day in this.sight.opening_hours.weekday_text'>{{ day }}</p>
</template>