使用Vue.JS / Axios和来自第三方API的数据填充DOM
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Vue.JS / Axios和来自第三方API的数据填充DOM相关的知识,希望对你有一定的参考价值。
我想使用Vue.js从第三方API中提取数据填充DOM(也就是说,我无法控制该API)。 Vue函数调用并返回所需的数据,并且还会创建正确数量的html div。但是问题是没有数据转发到这些html容器。
注: API数据(JSON)有点令人困惑,因为它是某种数组数组结构(我已经与提供程序进行过交谈,他们有充分的理由来构造此端点是)。
现在我真的不知道如何进行。我认为问题在于Vue.js找不到所需的数据(因为我无法正确编码该数据)。
这是我的Vue.js函数:
var app = new Vue(
el: '#Rank',
data:
info: []
,
created()
axios
.get("https://cors-anywhere.herokuapp.com/https://www.api-football.com/demo/api/v2/leagueTable/" + league_id)
.then(response =>
this.info = response.data.api.standings[0];
console.log(response.data.api.standings[0]);
);
);
这是HTML部分:
<div class="table" id="Rank">
<div><p>Rank</p></div>
<div v-for="rank in info" class="rank"><p> standings.rank </p></div>
</div>
这是JSON的结构:
"api":
"results": 1,
"standings": [
[
"rank": 1,
"team_id": 85,
"teamName": "Paris Saint Germain",
"logo": "https://media.api-football.com/teams/85.png",
"group": "Ligue 1",
"forme": "DLWLL",
"description": "Promotion - Champions League (Group Stage)",
"all":
"matchsPlayed": 35,
"win": 27,
"draw": 4,
"lose": 4,
"goalsFor": 98,
"goalsAgainst": 31
,
"home":
"matchsPlayed": 18,
"win": 16,
"draw": 2,
"lose": 0,
"goalsFor": 59,
"goalsAgainst": 10
,
"away":
"matchsPlayed": 17,
"win": 11,
"draw": 2,
"lose": 4,
"goalsFor": 39,
"goalsAgainst": 21
,
"goalsDiff": 67,
"points": 85,
"lastUpdate": "2019-05-04"
,
[...]
]
]
和v-for
输出,它创建正确数量的html div,但是没有任何数据。.:
您在v-for中使用了错误的键rank in info
,如果要使用standings
,则将其重命名为standings.rank
<div class="table" id="Rank">
<div><p>Rank</p></div>
<div v-for="standings in info" class="rank"><p> standings.rank </p></div>
</div>
以上是关于使用Vue.JS / Axios和来自第三方API的数据填充DOM的主要内容,如果未能解决你的问题,请参考以下文章
来自 Axios 405 或 415 错误的 Vue.js 和 .NET WEBAPI2 POST
在 Vue.js 中使用 axios 向 Laravel API 发送获取请求
使用 Vue.js + axios 将本地图像链接到 api 数组
使用 Vue.js 和 Axios 使用 REST API (C#) 返回的字符串
已解决 - CORS、OPTIONS 和 PreFlight 问题 在 Vue.js 中使用 Axios 使用 REST API