javascript - 基于模板变量的 ES6 模板字面量

标签 javascript ecmascript-6 template-literals

<分区>

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

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

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

最佳答案

你不能用简单的模板文字来做到这一点。

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

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

console.log(render(tpl, { id: 1})); // resources/1/

关于javascript - 基于模板变量的 ES6 模板字面量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633594/

相关文章:

php - 无法将字符串解析为 JSON 对象,无法显示来自 javascript 的警告框

javascript - Angular UI Bootstrap Input-Group-Button - 该死的 float 按钮

javascript - JS regex positive look behind * 应该什么时候不贪心?

javascript - 像 'some ${string}' 这样的 ECMAScript 模板文字不起作用

reactjs - 模板文字在 react 中不起作用

javascript - 如何仅显示 mat-table 中第一行的按钮

javascript - 为什么 openlayers map 在 vue-cli 3 中不起作用

javascript - 将 Angular 从 5.1 升级到 8 后 NgStyle 出现问题

arrays - 为剩余参数强制至少一个参数

javascript - 为什么变量在 for 循环内没有更新? JS