我正在尝试将模板文字与 Lodash' _.template()
一起使用根据另一个确定打开/关闭的函数的响应从 JSON 文件中选择消息,但它对我不起作用。
流量:
- 函数运行逻辑并返回
open
或close
通过opencloseResponse.openclose
对象(假设工作正常且未显示在下面的代码片段中) - 使用 Lodash
_.template()
我把messages.open
或messages.close
用户的名字为first_name
- 显示消息文本
没有模板文字的工作示例
messages.json
{
"messages": {
"open": "Hello ${ first_name }! We are open!",
"closed": "Hello ${ first_name }! We are closed!"
}
}
app.js
const _ = require('lodash');
const { messages } = require('messages.json');
const sendMessage = _.template(messages.open);
console.log(sendMessage({ first_name: 'Jeremy' }));
output
Hello Jeremy! We are open!
模板文字的失败示例
messages.json
{
"messages": {
"open": "Hello ${ first_name }! We are open!",
"closed": "Hello ${ first_name }! We are closed!"
}
}
app.js
const _ = require('lodash');
const { messages } = require('messages.json');
const sendMessage = _.template(`messages.${opencloseResponse.openclose}`);
console.log(sendMessage({ first_name: 'Jeremy' }));
output
messages.open
我希望它是我所缺少的简单的东西。一整天都让我发疯。我感谢任何帮助!
最佳答案
您不需要模板文字。
只需使用括号[]
表示法即可访问message
属性
const sendMessage = await _.template(messages[opencloseResponse.openclose]);
关于javascript - 将模板文字与 Lodash _.template() 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56517836/