Как сделать инкрементную переменную в v-for vue js - PullRequest
0 голосов
/ 28 июня 2019

Я хочу сделать инкрементную переменную внутри v-for

Это мой код в vuejs

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

это то, что я хочу (лезвие ларавеллы)

@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, а не увеличенное значение.

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Давайте делать просто! Представьте, что у вас есть простой список с предметом.

<div id="editor">
   <div id="example">
     <ul id="example-1">
      <li v-for="item in items" :key="item.id">
        <span>{{ item.message }}</span>
        <button v-on:click="item.count += 1">{{ item.count }}</button>
      </li>
    </ul>
  </div>
</div>

И ваши данные

new Vue({
  el: '#editor',
  data: {
    counter: 0,
    items: [
      { id: 1, message: 'Foo', count: 1 },
      { id: 2, message: 'Bar',  count: 1 }
    ]
  },
})

Надеюсь, что это поможет. Спасибо

0 голосов
/ 28 июня 2019

Почему бы вам просто не использовать значение индекса (начинается с 0), поскольку вы увеличиваете всего на 1, как это?

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

... и т.д. Вам не нужно вычисляемое свойство здесь. Индекса достаточно.

EDIT:

Попробуйте это тогда:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...