开发者问题收集

Vue.js 未设置数据对象数组中声明的属性

2019-07-24
56

我是 vue.js 新手,我想创建一些产品卡片,这些卡片将通过 vue.js 动态设置其属性:

这是我的 HTML 代码片段:

<div id="app">
<card v-for= "products in product" :productname="product.productname"></card>
</div>

这是我的 vue.js 模板/组件代码:

Vue.component('card', {
    props: [`productname`, `oldPrice`, `productPrice`, `productdetails`, `imgsrc`],

    template: `
    <div class="card">
    <div class="card-img-top">
       <img :src="imgsrc">
    </div>
    <div class="card-body">
        <h2>{{productname}}</h2>
        <p>{{productdetails}}.</p>
        <h6 class="product-price"><span class="old-price">{{oldPrice}} </span>{{productPrice}}</h6>
        <div class="rating">
            <span class="fa fa-star"></span>
            <span class="fa fa-star"></span>
            <span class="fa fa-star"></span>
            <span class="fa fa-star"></span>
            <span class="fa fa-star-half"></span>
            <span class="fa fa-star-o"></span>
        </div>
    </div>  
    </div>`
})

这是我的 vue 实例:

new Vue({
el: " #app",

data: {
    product: [{
            imgsrc: 'img/41IP6IopkBL.jpg',
            productname: "Pinar Wine top",
            productdetails: 'Lorem ipsum dolor sit amet, consectetur ',
            productPrice: '$200',
            oldPrice: '$400'
        }, {
            imgsrc: 'img/41IP6IopkBL.jpg',
            productname: 'Pinar Wine top',
            productdetails: 'Lorem ipsum dolor sit amet, consectetur',
            productprice: '$200',
            oldprice: '$400'

        }]

但它只是显示卡片,属性(例如产品名称、价格等)未显示。我做错了什么?

1个回答

命名在开发中非常重要,以免对所写的内容感到困惑。看看你的代码。

特别是这里

<card v-for= "products in product" :productname="product.productname"></card>
                                                       ^-- wrong naming here

你正在访问 product.productname ,但你想访问 products.productname 。正如我所说,命名很重要。你可以更改 product 和 products 的命名。

Aer0
2019-07-24