未捕获的TypeError:无法读取属性' get'在VueJs

时间:2017-02-22 09:23:34

标签: javascript vuejs2

我有以下代码

<div id="vue-instance">

</div>

JS

var vm = new Vue({
  el: '#vue-instance',
  data: {
  },
  ready:function(){
    this.loadCountries();
  },
  methods:{
        loadCountries(){
            this.$http.get('https://restcountries.eu/rest/v1/all',function(data){
                console.log(data);
          })
      }
  }
});

当我运行上面的代码时,它会给我以下错误

  

未捕获的TypeError:无法读取属性&#39; get&#39;未定义的

我有一个小提琴

JsFiddle

非常感谢帮助

5 个答案:

答案 0 :(得分:3)

$http.get来自Vue Resource。通过vue-resource添加package.json并通过npm install和代码安装

,确保正确地将其拉出来。

var Vue = require('vue');

Vue.use(require('vue-resource'));

要在小提琴中使用此功能,您必须在外部资源中添加vue-resource cdn link并在代码中使用以下内容:

Vue.use(VueResource)

参见工作演示:https://jsfiddle.net/49gptnad/187/

答案 1 :(得分:2)

要使用 $ http ,您必须先安装 vue-resource 中间件。您可以使用以下命令进行安装。

npm install vue-resource --save

安装完成后,转到 main.js 文件并导入 vue资源,如下所示

import vueResource from 'vue-resource'

现在已导入,因此我们只需调用 Vue 使用方法即可使用此中间件。您可以按如下方式调用使用方法。

Vue.use(vueResource)

答案 2 :(得分:0)

由于你没有vue-resource的插件,你的这个。$ http是未定义的。 要在js-fiddle上添加Vue-resource,请将https://cdn.jsdelivr.net/g/vue@2.0.0-rc.4,vue.resource@1.0.0添加到外部脚本部分。

答案 3 :(得分:0)

我解决了以下模式的问题:

npm install bootstrap-vue --save
npm install vue-resource --save
在main.js中

import Vue from './bootstrap'
import BootstrapVue from 'bootstrap-vue'

Vue.use(BootstrapVue)

创建bootstrap.js

import Vue from 'vue'
import VueResource from 'vue-resource'

Vue.use(VueResource)

export { Vue }

在App.vue中

this.$http.get('/api/module/all').then(...

答案 4 :(得分:0)

从2019年10月开始,我使用了另一种方法。我首先使用NPM这样安装

npm install axios --save

我稍后在下面使用它,并且在下面执行此操作以消除错误。

import  axios  from 'axios';