javascript - 如何在Vue js中计算折扣

标签 javascript vue.js vuejs2

我有一个包含一些字段的简单数据库。字段如下:id,product_name,original_price,discount 折扣字段以百分比表示。 我使用 Axios 一次获取所有数据并使用 v-for 在页面上渲染 代码:

<ul v-for="product in products">
   <li>@{{product.product_name}}</li>
   <li>@{{product.original_price}}</li>
   <li>@{{product.discount}}</li>
</ul>

这里我想显示折扣后的计算价格。我可以在 Vue 实例中创建一个方法 像这样:

      calculateDiscount: function(orig_price, discount){
                         this.discount_amt = discount/100*orig_price;
                         return this.after_discount = orig_price - this.discount_amt;
    }

如果我创建这个方法,我如何在渲染时调用这个方法,请帮忙。

最佳答案

您不能使用计算属性,因为您需要对 products 中的每个产品进行计算,并且计算属性不能采用任何参数。
您可以使用方法代替:

<ul v-for="product in products">
  <li>@{{product.product_name}}</li>
  <li>@{{product.original_price}}</li>
  <li>@{{product.discount}}</li>
  <li>@{{ discountedPrice(product) }}</li>
</ul>


methods: {
  discountedPrice(product) {
    return product.original_price - (product.original_price *(product.discount)/100)
  }
}

关于javascript - 如何在Vue js中计算折扣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50133375/

相关文章:

javascript - 使用 jQuery 检测滚动条是否仍然困难?

javascript - 如何在每次请求后保存用户 token

gulp - 一个 Vuejs 组件模板只需要 root 一个元素吗?

javascript - 尝试使用 jquery 工具将鼠标悬停在覆盖层上

javascript - 下载被 Chrome 阻止的(是否为空)xml 和 svg 文件的 zip 存档

javascript - Nuxt.js - 全局导入自定义 NPM 包

javascript - 无法在vue中使用 typescript

javascript - Vue2Leaflet - 我可以通过 JavaScript 而不是使用组件来创建标记吗?

javascript - 在 Vue 文件中创建根 Vue 实例

javascript - Vuetify - 如何访问表单规则中的数据