写一个ajax请求方法,在组件中正常,提取到公共方法的文件中就不正常啦,就报Cannot read property “$http ”of undefined",这个到底是怎么回事?我研究一天啦,也没有找到解决办法,请求帮助
这个是公共方法(common.js):
页面的调用方法(rank.vue):
报错的情况:
写一个ajax请求方法,在组件中正常,提取到公共方法的文件中就不正常啦,就报Cannot read property “$http ”of undefined",这个到底是怎么回事?我研究一天啦,也没有找到解决办法,请求帮助
这个是公共方法(common.js):
页面的调用方法(rank.vue):
报错的情况:
你的公共方法的this根本指的不是VUE的实例,你this能找到$http和store就有鬼了。。。。。你外部js包,不导入需要的依赖,就直接调用么?你这里的this指向的是Request。
import XXXX from 'XXXX'
把你需要的东西引入再用。
有空多补补js基础
function API (prefix) {
this.prefix = prefix
};
API.prototype.request = function (url, options) {
url = this.prefix + url
... do the request
}
API.install = function (Vue, options) {
var api = new API(options.prefix)
Vue.prototype.$api = api
Vue.api = api
}
6 回答3.1k 阅读✓ 已解决
6 回答2.4k 阅读
5 回答6.4k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
this.$http中的this无法指向vue实例,楼上正解。
解决方法,可以将vue实例作为request函数的参数传进来,request(this)