Ниже приведен пример использования литералов шаблона. Измените его в соответствии с тем, что вам нужно. Подробнее о литералах шаблонов
const countryName = 'United Kingdom';
const departmentName = 'IT';
const obj = {
"classical": "cs",
"state": "myState",
"template": `This is <b> ${countryName}</b> <br/> Thanks for ${departmentName}`
}
document.getElementById('template').innerHTML = obj.template;
console.log(obj.template);
<div id="template"></div>
но для вас это может не сработать, поскольку оно хранится в виде строки в вашей базе данных, поэтому для вашего случая вы можете использовать метод replace
для замены значений,Как ниже.
const countryName = 'United Kingdom';
const departmentName = 'IT';
const obj = {
"classical": "cs",
"state": "myState",
"template": "This is <b> ${countryName}</b> <br/> Thanks for ${departmentName}"
}
obj.template = obj.template.replace('${countryName}', countryName);
obj.template = obj.template.replace('${departmentName}', departmentName);
document.getElementById('template').innerHTML = obj.template;
console.log(obj.template);
<div id="template"></div>
Или вы даже можете использовать eval
(хотя и не рекомендуется) для преобразования его в литерал шаблона.
const countryName = 'United Kingdom';
const departmentName = 'IT';
const obj = {
"classical": "cs",
"state": "myState",
"template": "This is <b> ${countryName}</b> <br/> Thanks for ${departmentName}"
}
obj.template = eval('`' + obj.template + '`');
document.getElementById('template').innerHTML = obj.template;
console.log(obj.template);
<div id="template"></div>
Рекомендация:
Лучшее из возможных решений в вашем случае - перейти на второй вариант, то есть replace
метод.
Вы можете внести изменения в вашу строку, сохраненную в базе данных, чтобы иметь заполнители, такие как :cName
и :depName
, а затем заменить их соответственно.
eval
не рекомендуется посещение дляподробнее почему?
Надеюсь, это поможет:)