如何通过Vue Js中的axios调用查询

时间:2017-05-19 15:03:40

标签: javascript vue.js vuejs2 axios

我正在尝试使用以下网址调用查询:

http://localhost/Stellar/public/api/companies?column=name&direction=desc&page=1

在Vue Js 2.0中尝试调用类似的东西:

axios.get('$(this.source)?column=$(this.query.column)&direction=$(this.query.direction)$page=$(this.query.page)')

出现类似的东西

http://localhost/Stellar/public/$(this.source)?column=$(this.query.column)&direction=$(this.query.direction)$page=$(this.query.page)

它没有转换数据。帮助我解决这个问题。

感谢。

4 个答案:

答案 0 :(得分:1)

当您在字符串中明确地写出变量时,您并未引用变量。

做这样的事情:

let source = this.source;
let column = this.query.column;
let direction = this.query.direction;
let page = this.query.page;

axios.get(source+"?column="+column+"&direction="+direction+"&page="+page);

答案 1 :(得分:1)

您需要使用字符串插值。它是这样的:

let variable = 'dog';

let string = `This is a string using string interpolation. The variable is: ${variable}`;

console.log(string);

它的要点是你需要用``包围字符串,并且需要将变量包装在$ {}中。因此,对于您的示例,它应该使用:

axios.get(`${$(this.source)}?column=${$(this.query.column)}&direction=${$(this.query.direction)}&page=${$(this.query.page)}`);

顺便说一句,我在'page ='之前替换了'$'符号,因为它对我来说似乎是个错误。如果不是,请注意我改变了它。

编辑:我也假设当你使用$(this.query)等时,你正在调用jQuery。您也可能只是错误地使用字符串插值,因此需要用{}替换paranetheses。

答案 2 :(得分:1)

首先构建字符串。如果你把变量放到一个字符串中(你的axios调用的第一个参数)...在javascript中这些变量不会被评估。

let dest = this.source+'?column='+this.query.column+'&direction='+this.query.direction+'&page='+this.query.page;

axios.get(dest).then(response=>{
  console.log(response.data);
});

进一步阅读:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String

答案 3 :(得分:0)

Axios Request Config有一种更优雅的方式:

const url = "mysite.com";
const config = {
   params: {
       column: 42,
       direction: 'up'
    }
}
return axios.get(url, config)
   .then((response) => { 
        ...