javascript - Node.js/ejs - 在带有循环的 ejs 文件中使用插值
问题描述
我在 ejs 文件中有一个内联(在 html/ejs 中)脚本,该文件是由节点构建的。
主页.ejs
<html>
<head>
<script>
var i18nRotatingKws = [];
for (var i=1; i<90; i++) {
var i18nRotatingKws[i] = "<%- `rotatingKws.rotatingKw${i}` %>";
}
</script>
</head>
</html>
编译 ejs 文件后的输出应该是:
<html>
<head>
<script>
var i18nRotatingKws = [];
var i18nRotatingKws[1] = "<%- rotatingKws.rotatingKw1 %>";
var i18nRotatingKws[2] = "<%- rotatingKws.rotatingKw2 %>";
var i18nRotatingKws[3] = "<%- rotatingKws.rotatingKw3 %>";
var i18nRotatingKws[4] = "<%- rotatingKws.rotatingKw4 %>";
//and so on until 90
</script>
</head>
</html>
这些值,rotatingKws.rotatingKw1,rotatingKws.rotatingKw2...都在 i18n 文件中定义(取决于语言)。
我没有在 ejs 中使用任何循环,它工作得很好。这意味着如果我真的写了 90 行,例如var i18nRotatingKws[1] = "<%- rotatingKws.rotatingKw1
%>";`构建工作并且我在网页上检查过,它也可以工作。
我有一个特殊的 node.js 脚本,它在 tje ejs 编译之前解析 ejs 文件以更改 i18n 文件中的值,如下所示:
i18n/locales.js
module.exports = {
rotatingKws: {
rotatingKw1: __("rotatingKw1"),
rotatingKw2: __("rotatingKw2"),
rotatingKw3: __("rotatingKw3"),
},
}
语言环境/fr.js
module.exports = {
//rotatingKws
"rotatingKw1":"nice keyword1",
"rotatingKw2":"cool stuff",
"rotatingKw3":"hip man",
}
循环是问题:构建失败,我收到以下错误:
i is not defined at eval
如何解决这个问题?
解决方案
推荐阅读
- android - 如何使用手机的标准视频播放器应用播放视频
- javascript - e.preventDefault() 不会阻止 React 中的页面重新加载
- reactjs - React Select onClick 重定向页面
- woocommerce - Woocommerce:将属性值附加到订单注释
- c# - 我的 PDM 插件中的 C# Getthumbnail2 方法问题
- steam - Steam API - 获取 CSGO 存储单元的内容
- holtwinters - 霍尔特冬天阿尔法
- android - 我的 Android 应用程序版本超出预期
- django - 西里尔字母变成了问号 | Django 模板 HTML 元标记
- python - OSError: [WinError 126] 在 pyinstaller 中找不到指定的模块