• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

请问如何处理tornado模板和angular.js的 {{ }} 表达式冲突问题?

python 搞代码 4年前 (2022-01-09) 30次浏览 已收录 0个评论
文章目录[隐藏]

回复内容:

Angular 从1.0开始就支持用$interpolateProvider自定义分隔符 docs.angularjs.org/api/

因为Angular原生支持自定义分隔符, 而一些后端的模板语言不支持自定义分隔符,个人倾向于在Angular端自定义分隔符。 虽然有各种hack可以让前后端都用{{ }} 做分隔符,但这会让前后端的代码更难辨别,不好维护,所以不推荐在后端模板和混用相同的分隔符。

<code class="language-html"><span class="cp"></span><span class="nt"><html</span> <span class="na">ng-app=</span><span class="s">"customInterpolationApp"</span><span class="nt">></span>  <span class="nt"></span>    <span class="nt"><script </span><span class="na">src=</span><span class="s">"http://code.angularjs.org/1.2.0rc1/angular.min.js"</span><span class="nt">></script></span>    <span class="nt"><script </span><span class="na">src=</span><span class="s">"script.js"</span><span class="nt">></script></span>  <span class="nt"></span>  <span class="nt"><body></span>    <span class="nt"><div</span> <span class="na">ng-app=</span><span class="s">"App"</span> <span class="na">ng-controller=</span><span class="s">"DemoController as demo"</span><span class="nt">></span>        //demo.label//    <span class="nt"></div></span>  <span class="nt"></span><span class="nt"></span></code>

angularjs的模板全部保存为独立的html文件,由nginx直接去获取?

如果说,需要通过tornado去动态生成angularjs的模板,那么是否可以考虑重构代码去避免这种情况发生?还有一种规避方案是用ng-bind 替代两个花括号,本文来源gao.dai.ma.com搞@代*码#网比如:

<code class="language-html"><span class="nt"><p></span>{{name}}<span class="nt"></p></span></code>

我们的解决方法是修改tornado的模板引擎,加入了一个plain关键字。通过像

<code class="language-text">{% plain 'some_angular_template.html' %}</code>

{{! name }}前后端分离,不使用任何后端模板,不管是tornado的模板还是jinja2/mako, 统统干掉。前后端通过api返回json数据进行通信。angular是为富客户端而生的产物,个人倾向于把tornado变成一个restful服务器。所以前端工程应该是放在apache下更佳,不应该与tornado放到一起。

随着TSA的流行,应用服务器逐渐走向轻量化。如果仅仅作为WEB工程,个人不建议重度使用angular。应该考虑SEO的优化,走freemaker的路线。直接去改tornado模板渲染部分源代码 就几行代码 改成另外一个你自己想要的的标记 比如“{@ @}”


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:请问如何处理tornado模板和angular.js的 {{ }} 表达式冲突问题?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址