基于模板变量的ES6模板文字

Gui*_*ent 5 javascript ecmascript-6 template-literals

我尝试渲染ES6模板文字变量:

function render(template, data){
 ...
}
const template = 'resources/${id}/';
console.log(render(template, {id: 1})); // -> resources/1/
Run Code Online (Sandbox Code Playgroud)

是否存在将具有上下文的字符串模板转换为具有ES6模板文字功能的格式化字符串的方法?

Ali*_*lik 13

您不能使用简单的模板文字来完成此操作.

但是,您可以通过将文字包装到函数中来实现此类行为.由于ES6功能(解构和箭头功能),结果代码很简单

function render(template, data) {
  return template(data);
}
const tpl = ({ id }) => `resources/${id}/`;

console.log(render(tpl, { id: 1})); // resources/1/
Run Code Online (Sandbox Code Playgroud)

  • 但这并没有回答原来的问题。原始问题的寓意是您持有“resources/${id}/”作为变量。 (2认同)