编译ejs i18next时出现意外令牌

时间:2019-06-16 11:15:24

标签: javascript html node.js ejs i18next

使用i18next进行翻译时出现错误Unexpected token ) while compiling ejs

我已经使用i18next实现了翻译,下面是以下代码,使用map函数时出现以下错误

en.json

{
  "title": "List of Countries",
  "list":[{
     "name": "Singapore",
     "code": "SG"
  },{
    "name": "Thailand",
    "code": "TH"
 }]
}

index.ejs 
  <h4><%=t('title')%></h4> //outputs correctly
  <ul>
      <%=t('list').map(e=>{%>
          <li><%=e.name%></li>
      <%})%>
  </ul>

2 个答案:

答案 0 :(得分:0)

遍历数组时,您的ejs脚本不正确,您需要在遍历时删除分配字符,并使用对象“ e”代替“ li”,如下所示:

<ul> 
<%_ t('list').map(e=>{-%> 
<li><%=e.name%></li>
<%_  }) -%>
</ul>

使用:

“ <%_”用于在呈现ejs时删除以前的空格

“-%>”删除行

有关更多详细信息,请参见official ejs docs

答案 1 :(得分:0)

只需删除分配字符,您就可以了。

<select class="form-control" id="parts" name="parts" multiple="multiple" >
            <option th:each="part : ${partsAtribute}" 
                    th:selected="${selectedPartsLongSet.contains(part.id)}"
                    th:value="${part.id}"
                    th:text="${part.name}">Part name and serial No.</option>
            </select>