AJAX调用数据参数中的字符串插值

时间:2017-07-10 08:00:56

标签: javascript ajax ecmascript-6

我有一个locale变量,可以是enfres。 我必须发送一个AJAX请求,并将语言环境作为data参数的键。

let locale = "en";
let name = "example";
$.ajax({
  url: "/path",
  method: "PUT",
  data: {characteristic: {`${locale}`: name}},
  success: function(){},
  error: function(){}
})

我尝试使用ES6的字符串插值,但它会引发语法错误。 我怎么能这样做?

我希望得到,具体取决于语言环境:

{en: "example"}
{fr: "example"}
{es: "example"}

3 个答案:

答案 0 :(得分:3)

为此,您可以使用computed property names

{ [locale]: name } 

// if local is "en" the above will equal { "en": name }

通常,要使用计算属性名称,请将要计算的值放在方括号中,如下所示:

{ [1 + 2]: 'three' } // is equal to { '3': 'three' }

答案 1 :(得分:0)

here引用,您需要一个类似数组的括号来定义动态属性名称:

{
  characteristic: {
    [locale]: name
  }
}

答案 2 :(得分:0)

这有效:

[`${locale}`]: name