首页 > 解决方案 > 如何使用从数据库或变量中查询的模板文字?

问题描述

我将 HTML 电子邮件模板存储在 MySQL 数据库中。其中大部分包含 JavaScript 变量。我尝试使用模板文字(即:)来存储它们,${this.auth.user.name}但这不会返回变量,而是返回确切的字符串。我认为我的问题是因为字符串是用双引号或单引号封装的,而不是反引号。

所以我的 JavaScript 如下所示,这里template显示了从我的 MySQL 查询的对象数组。

var email_template: this.template[0].body;

实际输出是 Hello ${this.auth.name}!

我期待 Hello Jack 的输出!

你有什么想法可能是什么问题?

在此先感谢,蒂博尔

标签: javascriptmysqlstringecmascript-6template-literals

解决方案


尝试new Function像这样:

const name = "Jack";
const string = "Hello ${name}";
const actualString = new Function("return `" + string + "`").call(string);
console.log(actualString);


推荐阅读