javascript - 显示来自 mustache 的 javascript 变量内容
问题描述
我有一个用小胡子制作的页面模板。问题是我必须将数据的内容翻译成另一种语言而不是英语。
{{#variableToTranslate}}
<tr>
<th>title</th>
<td>{{variableToTranslate}}</td>
</tr>
{{/variableToTranslate}}
为了解决这个问题,我使用了一个返回翻译变量的 javascript 函数。
我的问题是:
- 如何显示翻译后的变量?(如何在 mustache 模板中显示 javascript 函数的返回)。
<script> function translate(arg1,arg2){ return arg1+arg2;} </script>
{{#variableToTranslate}}
<tr>
<th>title</th>
<td>translate(arg1,arg2);</td>
</tr>
{{/variableToTranslate}}
- 有没有更好的方法在显示之前翻译数据集的内容。
谢谢你。
解决方案
Mustache 模板实际上支持 lambda:
来自文档:https ://mustache.github.io/mustache.5.html
拉姆达斯
当值是可调用对象时,例如函数或 lambda,该对象将被调用并传递文本块。传递的文本是未渲染的文字块。{{tags}} 不会被扩展 - lambda 应该自己做。通过这种方式,您可以实现过滤器或缓存。
模板:
{{#wrapped}}
{{name}} is awesome.
{{/wrapped}}
哈希:
{
"name": "Willy",
"wrapped": function() {
return function(text, render) {
return "<b>" + render(text) + "</b>"
}
}
}
输出:
<b>Willy is awesome.</b>
推荐阅读
- amazon-web-services - 如何在 aws 中将 SSL/TLS 添加到域
- java - “强制更新快照/版本”——这很危险吗?
- spring - 我无法理解一些基本代码
- json - 在 IE 11 中反应 Axios 错误,但不是 Chrome
- javascript - 尝试使其动态时,jQuery AJAX 自动完成功能不起作用
- swift - 如何以编程方式创建 UICollectionView
- java - 在 android studio 中创建新项目后出现“IDE 错误”
- c# - 使用多线程将文本框中每一行的最后一个字符替换为第一个字符
- assembly - 任何检查汇编文件语法错误的已知方法
- java - Servlet 错误:HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET