【问题标题】:Vue, accessing data that's in a different v-for loopVue,访问不同 v-for 循环中的数据
【发布时间】:2021-09-15 00:41:44
【问题描述】:

我的 Vue 应用程序中有一个表格主体,其中一部分行是由围绕数据对象的循环构建的。然后,我有一个使用不同数据对象的单独部分,但是,我需要将其中的一个值与另一个循环中的值进行比较,以获得条件样式

我想知道是否有一种方法可以将数据从第一个 for 循环的 value 部分发送到 v-for 时的方法调用中,以便我可以在摘要循环中访问它,如果这有意义的话

这是桌子:

  <tbody v-if="selected === 'Stores'">
  <tr v-for="(value, manager) in managerNumbers" :key="manager"> <!--Here is where I'm wondering if I can send value to a method call-->
    <td v-for="date in dates" :key="date" >
      <div v-for="(dataForDate, dateVal) in value.dates" :key="dateVal">
        <div v-if="dateVal == date ">
          @{{dataForDate.total_categories}}
        </div>
      </div>
    </td>
  </tr>

  <tr><td colspan="10"></td></tr>
  <tr><td colspan="10"></td></tr>
  <tr>
    <th>
      Summary
    </th>
    <div v-for="store in activeStore" :key="store">
      <th :style="'background: ' + (value.qty > store.qty ? '#000' : '#fff')">@{{ store.stock_num }}</th>
    </div>
  </tr>
</tbody>

【问题讨论】:

  • managerNumbers 的索引和activeStore 的索引在所有点上都相同吗?
  • @Ohgodwhy yes they are
  • @Ohgodwhy 我什至没有考虑将其添加到问题中

标签: javascript html vue.js


【解决方案1】:

您可以使用计算方法在activeStoremanagerNumbers 之间创建一个查找表并循环遍历它。

get activeStoreAndManagerNumbers () {
 return managerNumbers.map((value, index) => {
    return {
      value, 
      store: activeStore[index] 
    }
  })
}

现在你可以为你的v-for 循环遍历这个数组:

v-for="(obj, index) in activeStoreAndManagerNumbers"

现在obj.value.qtyobj.store.qty 在同一个循环中可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2020-03-12
    • 2021-11-22
    • 2018-05-31
    • 2018-02-13
    相关资源
    最近更新 更多