模板转义的问题

2012-12-10 14:17:47 +08:00
 chainchan
假设当前模板内有如下内容:

$('#contents').text( " {{ escape(ds['contents']) }} " );


ds['contents'] = """一


"""

那么渲染后就变成了

$('#contents').text( " 一

三");

求教一般类似的情况应该如何解决呢?
4270 次点击
所在节点    Tornado
3 条回复
reorx
2012-12-10 15:00:13 +08:00
你是不希望它换行吗?
chainchan
2012-12-10 15:18:05 +08:00
@reorx
应该是说我希望在渲染后的模板中让它显示换行的。

我尝试自己解决了下:

逻辑层面把内容切成每一行加上<p>
ds['contents'] = ''.join(['<p>' + line + '</p>' for line in dic['contents'].split('\n')])

视图层
$('#contents').html( " {% raw ds['contents'] %} " );
reorx
2012-12-10 15:46:07 +08:00
我觉得还是把和 html 有关的东西都放在模板里面比较好呢。

ds['contents'] = ['一', '二', '三']

# template
var contents = $('#contents');
{% for line in ds['contents'] %}
$('<p>{{ line }}</p>').appendTo(contents);
{% end %}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/54541

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX