微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Vue.js v2.x中使用v-for指令时,如何指定范围的起始值?

如何解决在Vue.js v2.x中使用v-for指令时,如何指定范围的起始值?

我正在打印出用户可以单击的Vue.js寻呼机组件的页码。我看到文档清楚地表明v-for可用于一定范围:

v-for也可以取整数。在这种情况下,它将重复 模板多次。

<div> <span v-for="n in 10">{{ n }} </span> </div>

结果:

1 2 3 4 5 6 7 8 9 10

https://vuejs.org/v2/guide/list.html#v-for-with-a-Range

我仍然找不到为n指定起始值的方法。看来它从1开始并以1递增,直到10。

反正有5个n开始吗?

似乎几乎我需要创建一个方法或计算属性,该方法或计算属性将返回要迭代的确切值的数组,以代替静态10。

还有其他想法吗?

解决方法

无法在 n 处启动v-for

但是,从偏移量开始就像将偏移量添加到值中一样简单,然后在达到最大值时停止。

<div>
  <template v-for="n in max">
    <span v-if="n + offset <= max">{{ n + offset }} </span>
  </template>
</div>

如果您需要更多控制权,那么computed属性绝对是您的最佳选择,因为它将为您提供完全的控制权。

<div>
  <span v-for="n in computedArr">{{ n }} </span>
</div>
  computed: {
    computedArr() {
      let arr = [];
      for (var i = this.offset; i <= this.max; i++)
        arr[i] = i;
      return arr;
    }
,

一种方法是定义自己的辅助函数以生成序列:

Vue.prototype.$range = function *(start,end,step = 1) {
  for (let i = start; i <= end; i += step) {
    yield i
  }
}

new Vue({ el: '#app' })
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.11/vue.js"></script>

<div id="app">
  <div v-for="i of $range(5,10)">
    {{ i }}
  </div>
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。