如何使用 VueJS 和 AXIOS 映射 JSON 对象

Posted

技术标签:

【中文标题】如何使用 VueJS 和 AXIOS 映射 JSON 对象【英文标题】:How to mapping JSON Object with VueJS and AXIOS 【发布时间】:2018-01-29 08:55:44 【问题描述】:

如何将 JSON 对象与变量进行映射?我不确定我的编码是否正确。 我刚开始学习 Vuejs。 请参阅我的编码我想将 JSON 数据映射到“国家”变量。

  var appZone = new Vue(
	el: '#el',
	data() 
		return 
		  country:  [],
		  shoppingItems: [
			name: 'apple', price: '10',
			name: 'orange', price: '12'
		  ]
		
	,
	mounted() 
		axios.get('/wp-json/tour-api/v1/search/11361')
		.then(function (response) 
		  console.log(response);
      this.country = response.json();
		 
		)
		.catch(function (error) 
		  console.log(error);
		);
	  
  )
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<div id="el">
<ul>
        <li v-for="item in country">
           item.country_id   -   item.title 
        </li>
</ul>
</div>

这是我的 JSON 数据

【问题讨论】:

【参考方案1】:

将挂载函数改为

mounted() 
    var self = this
    axios.get('/wp-json/tour-api/v1/search/11361')
    .then(function (response) 
      console.log(response);
      self.country = response.data;
    )
    .catch(function (error) 
      console.log(error);
    );
  

self 被用来维护对原始 this 的引用,即使上下文正在发生变化。这是事件处理程序中经常使用的一种技术(尤其是在闭包中)。

【讨论】:

你的意思是 'var self = this' 吗? 应该是 response.data 而不是 response.json()

以上是关于如何使用 VueJS 和 AXIOS 映射 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

v-for Vuejs中使用AXIOS时如何调用方法

如何使用 axios 标头在 vuejs 中传递数据

如何使用 VueJS 和 axios 将从 API 获取的数据填充到 Laravel 中的选择选项中?

如何使用 Axios(VueJS、Nuxt)制作 .post

如何使用 axios 将数据从 vuejs 表单提交到 zapier webhook?

如何在 vuejs 中使用 axios 从数组中发布多个请求?