如何在 Vue Js 中通过 axios 调出查询
How call out queries through axios in Vue Js
我正在尝试使用 url 调用查询搜索,如下所示:
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)
它没有转换数据。帮我解决这个问题。
谢谢。
当您在字符串中显式写出变量时,您并不是在引用变量。
做这样的事情:
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);
您需要使用字符串插值。它是这样的:
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 替换为 {}。
首先构建字符串。如果您将变量放入字符串中(您的 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
Axios Request Config 有更优雅的方式:
const url = "mysite.com";
const config = {
params: {
column: 42,
direction: 'up'
}
}
return axios.get(url, config)
.then((response) => {
...
我正在尝试使用 url 调用查询搜索,如下所示:
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)
它没有转换数据。帮我解决这个问题。
谢谢。
当您在字符串中显式写出变量时,您并不是在引用变量。
做这样的事情:
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);
您需要使用字符串插值。它是这样的:
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 替换为 {}。
首先构建字符串。如果您将变量放入字符串中(您的 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
Axios Request Config 有更优雅的方式:
const url = "mysite.com";
const config = {
params: {
column: 42,
direction: 'up'
}
}
return axios.get(url, config)
.then((response) => {
...