首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >评级-恒星组件vuejs2

评级-恒星组件vuejs2
EN

Stack Overflow用户
提问于 2022-06-29 15:21:40
回答 2查看 44关注 0票数 0

我有一个从1到5的整数,我应该能够在这个数字的基础上打印星号(使用FontAwersome)。我能做什么?

我必须使用VueJS 2

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-29 16:39:20

有一个简单的方法:

代码语言:javascript
复制
new Vue({
  el: '#demo',
  data() {
    return {
      stars: new Array(10)
          .fill('<i class="fa-solid fa-star"></i>', 0, 5)
          .fill('<i class="fa-regular fa-star"></i>', 5, 10),
      nr: 3
    }
  },
  methods: {
    rating() {
      return this.stars.slice(5 - this.nr, 10 - this.nr).join("")
    }
  }
})
代码语言:javascript
复制
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="demo">
  <div v-html="rating()"></div>
  <input type="number" v-model="nr" min="0" max="5" />
</div>

票数 0
EN

Stack Overflow用户

发布于 2022-06-29 15:24:56

你可以这样做:

代码语言:javascript
复制
<div v-for="n in getStarRatingValue()">
    // full star
</div>
<div v-for="n in (5 - getStarRatingValue())">
    // empty star
</div>

其中,getStarRatingValue是一个将评分从0返回到5的函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72803964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档