首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何逐行打印Vue对象

如何逐行打印Vue对象
EN

Stack Overflow用户
提问于 2019-09-22 09:41:27
回答 2查看 802关注 0票数 1

我有一个Vue应用程序,我试图在它自己的表行中显示每个'object‘。但是,我只能让它在一个列中显示每个对象,或者我可以将其设置为每个元素都在自己的行中(如下图所示)。如何使'0 BTC 14,745.3‘在第一行,然后下一个对象'1 ETH AUD 312.14’显示在第二行。我是Vue的新手,我想知道是否有人能帮助我

我已经附上了下面的图片以及我的当前代码,谢谢!

代码语言:javascript
复制
<template>
<div class="main">
  <div id="container" v-for="(index) in coin" :key="index">
    <table class="coins">
      <thead>
        <tr class="header">
          <th>Rank</th>
          <th>Name</th>
          <th>Price</th>
        </tr>
      </thead>
      <tbody>
        <td>{{ index }}</td>
      </tbody>
    </table>
  </div>
</div>
</template>

<script>
import axios from 'axios'
var limit = 20

export default {
  name: 'ex',
  data: () => ({
    coin: []
  }),

  created () {
    axios.get('https://min-api.cryptocompare.com/data/top/totalvolfull?limit=' + limit + '&tsym=AUD')
      .then(response => {
        for (var i = 0; i < limit; i++) {
          this.coin.push(i, response.data.Data[i].CoinInfo.Name, response.data.Data[i].DISPLAY.AUD.PRICE)
          // console.log(this.coin[i])
        }
      })
      .catch(e => {
        this.errors.push(e)
      })
  }
}
</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-22 10:00:50

更改将数据推入硬币数组的方式,因为在每次迭代中,您都会将三个项(索引、硬币名称和值)推入数组中,但您要做的是将包含所有这些信息的单个项(数组或对象)推送到数组中。为了代码清晰,还将coin数组的名称更改为coins。像这样的事情应该有效:

代码语言:javascript
复制
this.coins.push([i, response.data.Data[i].CoinInfo.Name, response.data.Data[i].DISPLAY.AUD.PRICE])

然后更改模板中的迭代。第一件事是将v-for改为如下所示:

代码语言:javascript
复制
<div id="container" v-for="(coin, index) in coins" :key="index">

然后当你打印内容时:

代码语言:javascript
复制
<tbody>
     <td>{{ coin[0] }}</td>
     <td>{{ coin[1] }}</td>
     <td>{{ coin[2] }}</td>
</tbody>

我没有测试这个,但我希望这个总体想法足以让你走上正确的方向。

票数 1
EN

Stack Overflow用户

发布于 2019-09-22 10:03:08

也许改变一下你是如何创建这个对象的

相反,请这样做:

代码语言:javascript
复制
this.coin.push(i, response.data.Data[i].CoinInfo.Name, response.data.Data[i].DISPLAY.AUD.PRICE)

做这样的事

代码语言:javascript
复制
const coinObject = {
  index: i,
  name:response.data.Data[i].CoinInfo.Name,
  price: response.data.Data[i].DISPLAY.AUD.PRICE
}
this.coin.push(coinObject);

然后,您可以在模板中这样循环:

代码语言:javascript
复制
 <div id="container" v-for="(coinItem, index) in coin" :key="index">
    <table class="coins">
      <thead>
        <tr class="header">
          <th>Rank</th>
          <th>Name</th>
          <th>Price</th>
        </tr>
      </thead>
      <tbody>
        <td>{{ coinItem.index }}</td>
        <td>{{ coinItem.name }}</td>
        <td>{{ coinItem.price }}</td>
      </tbody>
    </table>
  </div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58047973

复制
相关文章

相似问题

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