如何在 v-for vue js 中创建增量变量

Posted

技术标签:

【中文标题】如何在 v-for vue js 中创建增量变量【英文标题】:How to make increment variable in v-for vue js 【发布时间】:2019-11-10 06:01:45 【问题描述】:

我想在 v-for 中创建一个增量变量

这是我在 vuejs 中的代码:

<tr v-for="(item,index) in vtype_all" :key="index" :set="incrementI = 0">
                <template v-for="item2 in data_tanggal1">
                    <td :key="item2.id" v-if="item2 == item.baseTanggal[incrementI].tanggal">item.baseTanggal[incrementI].hitc+'spasi'+incrementI</td>
                    <td :key="item2.id" v-if="item2 == item.baseTanggal[incrementI].tanggal">item.baseTanggal[incrementI].hith</td>
                    <td :key="item2.id" v-if="item2 != item.baseTanggal[incrementI].tanggal">0</td>
                    <td :key="item2.id" v-if="item2 != item.baseTanggal[incrementI].tanggal">0</td>
                    <template v-if="item2 == item.baseTanggal[incrementI].tanggal" :set="incrementI = incrementI+1"></template>
                </template>
                <td> item.jumQty </td>
                <td> item.jumHrg </td>
            </tr>

这就是我想要的(laravel 刀片):

@foreach($dataProduct['byVtype'] as $row)
        <?php $i=0; ?> <!--can insert variable -->
        <tr>
            <td>$row['detail'][0]['vgrp_product']</td>
            <td>$row['detail'][0]['ptype']</td>
            <td>$row['detail'][0]['vgrp_nominal']</td>
            <?php for($j=0;$j<count($dataProduct['byTanggal']);$j++)  ?>
                <?php if(isset($row['baseTanggal'][$i]['tanggal']) ) ?>
                    @if($dataProduct['byTanggal'][$j] == $row['baseTanggal'][$i]['tanggal'])
                        <td>$row['baseTanggal'][$i]['hitc']</td>
                        <td>$row['baseTanggal'][$i]['hith']</td>
                        <?php $i++; ?> <!-- increment varible if condition true -->
                    @else
                        <td>0</td>
                        <td>0</td>
                    @endif
                <?php  ?>
            <?php  ?>
            <td> $row['jumQty'] </td>
            <td> $row['jumHrg'] </td>
        </tr>
    @endforeach

我已经设置了增量$i,但它仍然返回值 0,而不是增量值。

【问题讨论】:

你能展示整个组件吗?增量计数器从哪里来? 对不起,这是我的 incrementCounter incrementCounter: function (value) value += 1 return value ,我把方法放进去 为什么不直接使用索引呢? 因为完成循环后索引仍会增加。如果返回循环 vtype_all,我希望将值重置为 0 在你的第二个 v-for.. 中使用第二个增量器。&lt;template v-for="(item2, i) in data_tanggal1"&gt; 【参考方案1】:

你为什么不直接使用索引值(从 0 开始),因为你只增加 1,就像这样?

  item.baseTanggal[index]
  item.baseTanggal[index+1]

等等... 您在这里不需要计算属性。索引就够了。

编辑:

然后试试这个:

<tr v-for="(item,index) in vtype_all" :key="index">
  <template v-for="item2 in data_tanggal1">
      <div v-for="counter in 10" :key="counter"> // change to to the number you want
        <td :key="item2.id" v-if="item2 == item.baseTanggal[counter].tanggal">item.baseTanggal[counter].hitc</td>
      </div>
  </template>
  <td> item.jumQty </td>
  <td> item.jumHrg </td>
</tr>

【讨论】:

如果返回循环 vtype_all,我希望将值重置为 0 感谢您的建议。我已经找到了新的方法,现在解决了^^

以上是关于如何在 v-for vue js 中创建增量变量的主要内容,如果未能解决你的问题,请参考以下文章

如何用vue.js给点过的li添加单独的class

Vue:增量渲染 v-for?

vue中创建全局单文件组件/命令

Vue.js 使用 v-for 单击时切换类

如何在 Vue.js 中创建自定义链接组件?

如何在 data vue.js 2 中创建两个数组?