我正在尝试使用以下网址调用查询:
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)
它没有转换数据。帮助我解决这个问题。
感谢。
答案 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) => {
...