I have a simple page where I display some data that are fetched from the server.
Template:
<p>Order's customer name: {{ order.customer.name }}</p>
Javascript:
export default {
data () { return { order: {} } },
mounted () { this.fetchOrder() },
methods: {
fetchOrder () {
/* get the order data asynchronously from the server */
.success(function () { this.order = data_from_server })
}
}
}
Everything works just fine but in browser's console there is an error: "Cannot read property 'name' of undefined". Apparently the problem is that it takes some time to fetch the order data from the server and meanwhile it tries to access order.customer.name, which results in error, because order.customer is undefined.
How can I suppress this error? What's the best solution to this?
Of course, I can explicitly define the order structure (eg. order: { customer: {} }), but that doesn't seem nice to me, especially when the data structure grows to several-level-nested objects.
order.customer?.namebut in JS I'm afraind you'll have something "ugly" in the end anyway.