如何使用动态值插入标记模板字符串?

zok*_*zok 5 javascript ecmascript-6 template-strings tagged-templates

我想插入一个模板字符串(在其他地方定义):

const url = `www.example.com/${query}/current.json`;
Run Code Online (Sandbox Code Playgroud)

带有动态值(例如“es6”):

"www.example.com/es6/current.json"
Run Code Online (Sandbox Code Playgroud)

例如,如果我有这样的事情:

function makeRequest(url, query){
  // how do I generate my final url, here from the url and query?
}

// somehwere else:
makeRequest(url, query)
Run Code Online (Sandbox Code Playgroud)

带标签的模板字符串和标签函数是正确的方法吗?我见过很多不同的例子,但没有一个适合这种特殊情况。

gyr*_*yre 5

这正是函数被发明的原因!

const dynamicUrl = query => `www.example.com/${query}/current.json`

console.log(dynamicUrl('es6')) //=> 'www.example.com/es6/current.json'
Run Code Online (Sandbox Code Playgroud)

  • @zok 不要忘记 `encodeURIComponent(query)` 或确保 `query` 是 URL 安全的。 (2认同)