使用VueJS

时间:2017-11-17 20:20:54

标签: javascript json vue.js

我想用我的json用vueJS

计算数据

数据是这样的

json来自我的api

[
    {
        "id": 4,
        "votes": 0
    },
    {
        "id": 3,
        "votes": 1
    },
]

要获取并呈现此数据,我正在使用此vueJS文件

app.js

const vm = new Vue({
  el: '#app',
  data: {
    results: []
  },
  mounted() {
    axios.get("http://example.com/votes.json")
    .then(response => {this.results = response.data})
  },
});

现在我想创建一个vue变量来显示我的index.html

中的总投票数

的index.html

<div v-for="result in results">
    <p>Votes {{ result.votes }}.</p>
    <p>Id : {{ result.id }}</p>
</div>
<div>
    <p>Total of votes : {{ resultsVotes }}</p>
</div>

2 个答案:

答案 0 :(得分:2)

reduce函数

只能then投票总和
axios.get("http://example.com/votes.json")
    .then(response => {
         this.results = response.data;
         this.resultsVotes = this.results.reduce((sum, curr) => sum + curr.votes, 0);
    });

答案 1 :(得分:1)

如果问题是如何计算resultVotes,建议使用computed值:

const vm = new Vue({
  el: '#app',
  data: {
    results: []
  },
  computed: {
    resultVotes () {
      return this.results.reduce((sum, val) => sum + val.votes, 0);
    }
  },
  mounted() {
    axios.get("http://example.com/votes.json")
    .then(response => {this.results = response.data})
  },
});