我尝试使用axios
从我的API服务器获取数据,但是我收到此错误:
'v-bind' directives require an attribute value.
我不知道如何使用v-bind
来修复它。
这是我的代码:
<template>
<div class="main">
<p class="title"><span>Fetured Items</span><br>
<span>Shop for items based on what we featured in this week</span></p>
<div v-if="products && products.length" class="content">
<content-item v-for="product in products" :key="product.id"
v-bind:name="product.name"
v-bind:price="product.price"
v-bind:srcToProdImage= 'localhost:8081/' + product.productImage></content-item>
</div>
<p class="cont-btn">
<button class="btn">Browse All Product <span><i class="fas fa-arrow-right"></i></span></button>
</p>
</div>
</template>
<script>
import Content_item from './Content-item';
import axios from 'axios';
export default {
data:{
products,
errors
},
created(){
axios.get('localhost:8081/products')
.then((result) => {
this.products = result.data.products
}).catch((err) => {
this.errors.push(err)
});
},
components: {
'content-item' : Content_item
}
}
</script>
<style lang="scss" scoped>
.content{
display: flex;
flex-wrap: wrap;
margin-left: 150px;
margin-right: 150px;
justify-content: space-between;
}
.title{
text-align: center;
margin-top: 40px;
margin-bottom: 30px;
span:first-child{
font-family: 'Lato', sans-serif;
font-weight: 800;
color: #222222;
font-size: 30px;
}
span:last-child{
font-family: 'Lato', sans-serif;
font-weight: 400;
color: #9f9f9f;
font-size: 14px;
}
}
.cont-btn{
display: flex;
justify-content: center;
}
.btn{
padding: 18px 24px 18px 24px;
background-color: #f16d7f;
font-family: 'Lato', sans-serif;
font-weight: 800;
border: none;
outline: none;
color: #ffffff;
}
</style>
答案 0 :(得分:5)
只需在srcToProntImage
表达式周围添加双引号:
<content-item v-for="product in products" :key="product.id"
v-bind:name="product.name"
v-bind:price="product.price"
v-bind:srcToProdImage="'localhost:8081/' + product.productImage"></content-item>
答案 1 :(得分:0)
您可能会遇到一些语法错误。请检查您的Vue相关代码中是否有som <,>或exstra字符。这是我的错误。