javascript - 如何使用vuejs组件获取json数据?

标签 javascript vue.js

我想使用 vue 组件从外部文件访问 json 数据,但我无法在网页中获得任何输出。以下是我尝试过的代码。有人可以帮助我吗?

下面是Json数据,其中包含我想要在网页上显示的模型

{
    "models": [
      {
        "title": "IRIS",
        "project": "ABC",
        "category": "SINGLES",
        "bedrooms": 3

      },
      {
        "title": "LILAC",
        "project": "ABC",
        "category": "DOUBLE",
        "bedrooms": 4

      },
      {
        "title": "ASTER",
        "project": "ABC",
        "category": "SINGLES",
        "bedrooms": 4

      }
    ]
  }

Vue.component('single-model', {

  data: function() {
    return {
      myData: []

    }
  },
  template: `<div v-for="model in myData">
              <p>{{model.title}}</p>
              <hr>
            </div>`,

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

  methods: {
    fetchData: function() {
      var url = 'j.json';
      axios.get(url)
        .then(function(res) {
          this.myData = res.data.models;

        });
    }
  }
});
var vm = new Vue({
  el: '#app',
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js"></script>

    <div id="app">
      <single-model></single-model>

    </div>

最佳答案

  1. 您可能已经注意到白色运行提供的代码片段,template 只能有一个子元素,在最外层元素上使用 v-for 将创建多个 child 。

  2. this 在您的情况下并不是指 fetchData 函数中的 vue 组件。

methods:{
	fetchData() {
      var url = '';
      axios.get(url)
        .then((res) => {
          this.myData = res.data;
		});
    }
  },
尝试在代码中替换为上述代码段。

关于javascript - 如何使用vuejs组件获取json数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60264410/

相关文章:

javascript - 如何从 datetimepicker js 禁用 future 的日期和时间

javascript - 具有 promise 的流类型(获取的)

javascript - 尝试使用 ui Angular 创建模态模板

javascript - 为什么我不能连接这两个数组?

javascript - 清除vue 3中的输入文件

javascript - 网站倒计时js

javascript - 如何防止在字段上按 Tab 键时选择 angular-ui-select 默认值

javascript - 如何限制以下循环,使其仅显示第一个匹配的元素?

javascript - 有没有办法用 Vue.JS SPA 刷新 Laravel Passport 的 cookie token ?

vue.js - Vue忽略数据重复