我有一个Mako文件(我的Python服务器将其转换为HTML),其中包含一个带有JavaScript ES6模板文本的脚本元素。由于Mako和JS都认识到${..}
,我被迫编写${'${..}'}
来让JS模板工作${{..}}
类似于f字符串,我找不到可以转义它的|
标志。
说
<script>
//This is just an example
let entry = {title: '${some_py_value}'} //Mako templating
$('body').append(`${'${entry.title}'}`); //JS templating
</script>
这是可行的,但看起来很尴尬,就像你在Perl中看到的一样,以至于我经常返回到字符串串联(string concatenation)——这通常是一个迹象,表明隐藏着一个更优雅的解决方案。有吗?你知道吗
可以使用标记
<%text>
和</%text>
(ref)关闭模板。介于两者之间的任何内容都将呈现为文本而不进行解析。你知道吗这比
${'${jsVariable}'}
有优势,如果这两个变量不是混合的,也就是说,一次首先在JS中传递Python变量,这就是应该发生的*。catch是%if
,%for
在%text
块中不起作用,但这些块应该是JS编码的。你知道吗∗)好的,理想情况下,所提供的HTML页面应该是通用的,不需要将主JS代码作为一个单独的文件进行外部处理,其中包含由几个ajax请求填充的用户数据。尽管总是有一些极端情况(例如大型Python非JSON可序列化对象,具有复杂且计算量大的方法,需要频繁调用,但不能作为一系列ajax请求运行,因为数据需要首先初始化,但不能存储在服务器端等)。你知道吗
相关问题 更多 >
编程相关推荐