javascript - 如何替换 Javascript 模板字符串中的变量?

标签 javascript templates ecmascript-6

这就是我想要实现的目标。

let something = 'first string';
let template = `asdf=${something}asdf`;

some.method(template)
    .then(function() {
       let something = 'new string';
       console.log(template); 
       // does not return 'asdf=new stringasdf' like expected
    });

如何保留模板,但在需要时(在作用域函数内)切换其中的变量?

最佳答案

该模板基本上是以下内容的简写:

let template = "asdf=" + something + "asdf";

因此它在模板本身出现在代码中的位置进行评估。

我想你会想使用一个函数:

let template = function(something) { return `asdf=${something}asdf`; }

然后你可以这样做:

some.method(template(something)).then(function() { let something = 'new string'; console.log(template(something)); });

关于javascript - 如何替换 Javascript 模板字符串中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37915574/

相关文章:

javascript - 吊装和可变范围

templates - 如何将Windows商店模板添加到Visual Studio 2013?

wordpress - 从 Woocommerce 中的单个产品页面中删除产品尺寸

javascript - React 中的表单行为不符合预期

javascript - 如何从另一个对象调用一个对象的方法?

javascript - 为什么节点和监听器没有以一致的方式正确清理?

javascript - 从 Angular 8 中的 http 响应读取错误状态代码时为 "Cannot read property message of null"

c++ - 运行时动态函数解析

ecmascript-6 - super 关键字出乎意料

javascript - 将事件监听器添加到 Gmail 发送按钮