javascript - 使用 jQuery $.getJSON() 从 Vuejs 方法中的本地 json 文件获取数据
问题描述
我正在使用 Vuejs 开发一个演示应用程序,作为其中的一部分,我需要从本地 .json 文件中获取一些地图数据,获取其中的某些部分(例如纬度/经度值),然后将其放入适当的数据对象,以便它们可以显示在地图上。经过大量搜索后,它似乎是使用 jQuery 方法的最简单$.getJSON()
方法。但是,我不知道如何从$.getJSON
回调中获取数据到我的 Vuemarkers
对象。
这是我的相关代码:
<script>
import _ from 'lodash'
import $ from 'jquery'
export default {
name: 'HelloWorld',
data () {
return {
center: {lat: 37.541885, lng: -77.440624},
markers: []
}
},
methods: {
getMarkers: function () {
var apparatus = {}
var address = []
var description = {}
$.getJSON('../static/event1.json', function (data) {
// What do I do here to get outside of this function so
// I can manipulate it?
apparatus = data.apparatus
address = data.address
description = data.description
})
}
},
created () {
this.getMarkers()
}
}
</script>
正如您在上面的评论中看到的,我需要从$.getJSON
回调内部获取数据,但我看不到我需要做什么。这种方法行得通,还是有更好的方法?
解决方案
我不确定你想在函数之外的哪里访问它。例如,您可以通过 将结果分配$.getJSON
给 Vue 的实例数据self.data = data
,然后您可以在您的外部访问它$.getJSON
export default {
name: 'HelloWorld',
data () {
return {
center: {lat: 37.541885, lng: -77.440624},
markers: [],
data: null
}
},
methods: {
getMarkers: function () {
var apparatus = {}
var address = []
var description = {}
var self = this
$.getJSON('../static/event1.json', function (data) {
self.data = data // then you can access data outside of your function by reference this.data
// What do I do here to get outside of this function so
// I can manipulate it?
apparatus = data.apparatus
address = data.address
description = data.description
})
}
},
created () {
this.getMarkers()
}
}
推荐阅读
- python - 您可以使用 1D 数组来索引 3D 数组并在单个轴上应用乘法吗?
- python - Azure 管道找不到 requirements.txt 文件
- python - 与 adaccount 共享相似受众时获取空对象 - Facebook API
- random - 如何在 Prolog 中表达无穷大?
- sql - 不显示表格
- redis - Nifi Redis Sentinel 集成
- javascript - 在 TS 中使用 Jest 模拟段分析
- python - 如何将数据框中的一行的值与另一个数据框中的多行进行比较(包括计算)
- for-loop - 将蛋白质序列的权重与正确的序列配对
- java - 带有字符串和列表的 TreeMap