Шаблоны Lodash и литералы шаблонов JavaScript - совершенно разные животные.Если вы хотите продолжать использовать эти файлы JSON, вы не будете использовать литералы шаблона JavaScript, вы просто будете использовать динамический доступ к свойству:
const sendMessage = _.template(messages[opencloseResponse.openclose]);
console.log(sendMessage({ first_name: 'Jeremy' }));
Если вы хотите использовать литералы шаблона, то, как вы делаетеих можно использовать многократно, чтобы обернуть их в функции .Например, вместо вашего messages.json
у вас может быть messages.js
:
exports.messages = {
"open": (first_name) => `Hello ${ first_name }! We are open!`,
"closed": (first_name) => `Hello ${ first_name }! We are closed!`
};
затем
const messages = require('./messages');
console.log(sendMessage(messages[opencloseResponse.openclose]('Jeremy')));
Или вы можете сделать так, чтобы функция принимала объект как с вашим Lodashкод, если вы предпочитаете:
exports.messages = {
"open": ({first_name}) => `Hello ${ first_name }! We are open!`,
// ^----------^-------------------------------------------------- destructuring
"closed": ({first_name}) => `Hello ${ first_name }! We are closed!`
// ^----------^------------------------------------------------ destructuring
};
тогда
const messages = require('./messages');
console.log(sendMessage(messages[opencloseResponse.openclose]({first_name: 'Jeremy'})));