gpt4 book ai didi

javascript - 如何使用 Vue.js 访问 API?

转载 作者:数据小太阳 更新时间:2023-10-29 04:38:09 37 4
gpt4 key购买 nike

我是 JavaScript 和 Vue.js 的新手,我在使用 Vue.js 访问 api 时遇到问题。我尝试访问的 API 具有如下所示的 JSON:

{
"coord": {
"lon": -88.99,
"lat": 40.51
},
"weather": [
{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01n"
}
],
"base": "stations",
"main": {
"temp": 2.09,
"pressure": 1022.3,
"humidity": 69,
"temp_min": 2.09,
"temp_max": 2.09,
"sea_level": 1052.03,
"grnd_level": 1022.3
},
"wind": {
"speed": 12.66,
"deg": 205.502
},
"clouds": {
"all": 0
},
"dt": 1482203059,
"sys": {
"message": 0.186,
"country": "US",
"sunrise": 1482239741,
"sunset": 1482273134
},
"id": 4903780,
"name": "Normal",
"cod": 200
}

它自己的 API 链接有效,但我不认为我在运行程序时正在访问它。即使我不尝试解析 JSON 而只是显示从 api 收集的所有数据,我的变量仍然是空的。所以,我一定是在访问 api 时做错了什么。此外,访问 api 后,将像这样解析它:例如,访问标签“temp”=>“data.main.temp”

var weather = new Vue({
el: '#weather',

data: {
getTemp: ''
},

created: function () {
this.fetchData();
},

methods: {
fetchData: function () {
this.$http.get('api.openweathermap.org/data/2.5/weather?q=Normal&units=imperial&APPID=MYAPPID'),
function (data) {
this.getTemp = data.main.temp;
}
}
}

})
;

HTML代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/vue.resource/1.0.3/vue-resource.min.js"></script>
</head>

<body>
<div id="weather">
{{getTemp}}
</div> <!--end of weather-->
</body>

<script src="app.js"></script>

</html>

最佳答案

我发现 this 的范围有问题,this 的范围在 $http.get 里面变黑了,你需要做以下改变:

    methods: {
fetchData: function () {
var vm = this
this.$http.get('api.openweathermap.org/data/2.5/weather?q=Normal&units=imperial&APPID=MYAPPID'),
function (data) {
vm.getTemp = data.main.temp;
}
}
}

你也可以看看我类似的回答here .

关于javascript - 如何使用 Vue.js 访问 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41234463/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com