替换 jquery-templ 标签
有没有办法替换 jquery-tmpl 上的主标签?
示例:
var data = {名称:'Pele',语言:["葡萄牙语","英语","西班牙语"]};
所以在脚本标签上我们定义以下模板
姓名:${姓名} {{每种语言}} 我说的是价值 {{/each}}
我想改变的是...... 我不使用 {{each}} 我会使用类似 $$each$$ 的东西 我会使用 $#Name$ 代替 ${Name}
你可能会问自己为什么我想这样做。
主要原因是当我在我们正在开发的项目中使用 Django 并且当我们放置像 {{each}} 这样的代码时(即使在类型设置为 text/html 的脚本标签上),Django 视图引擎认为它是一个服务器标签并且尝试将其呈现为服务器端标记。
更新: 我正在寻找一种在 jQuery-tmpl 上设置 Delimeter 的方法,就像 Mustache.js 上提供的方法一样 http://mustache.github.com/mustache.5.html (查找 < i>设置分隔符)
谢谢。
Is there a way to replace the main tag on jquery-tmpl ?
Example:
var data = {Name: 'Pele', Languages: ["Portuguese","English","Spanish"]};
So on a script tag we define the following template
Name: ${Name}
{{each Languages}}
I speak $value
{{/each}}
What I wanted to change is ...
Istead of using {{each}} I'd use something like $$each$$
Instead of ${Name} I'd use something like $#Name$
You may be asking yourself why I wanna do this.
The main reason is when I because on the project we're working on uses Django and when we put code like {{each}} (even on script tag with type set to text/html) Django view engine think it's a server tag and tries to render it like if it were a server side tag.
Update:
What I'm looking for is a way to Set a Delimeter on jQuery-tmpl like the one that is avaiable on Mustache.js
http://mustache.github.com/mustache.5.html (look for Set Delimiter)
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当然,如果你想在 HTML 中使用文字
{
,请使用templatetag
与openblock
。如果您想要文字
}
,请使用closeblock
:因此,如果您想要在 HTML 中使用
{{each}}
,请使用:Sure, if you want a literal
{
in your HTML, usetemplatetag
withopenblock
.If you want a literal
}
, usecloseblock
:So if you want
{{each}}
in your HTML, use:另一种方法是在 js 文件中定义模板,该文件不被 django 作为模板处理。
如果这不可能,多米尼克方法的另一种替代方法是为“{{”和“}}”定义变量,可能是 jqtmpl_open 和 jqtmpl_close ,并在模板中使用它们,如下所示:
这在模板中更具可读性。
更改 jquery-tmpl 的分隔符很复杂。通过查看代码,似乎 {{ 被硬编码在一些正则表达式中。
唯一的解决方案是为您的项目分叉 jquery-tmpl 并更改这些硬编码的正则表达式以满足您的需求。
A different approach would be to define the template in a js file which is not processed by django as a template.
If that is not possible another alternative to Dominic's approach would be to define variables for '{{' and '}}' maybe jqtmpl_open and jqtmpl_close accordingly and use them in template like this:
This would be more readable in the template.
Changing a delimiter for jquery-tmpl is complicated. By looking at the code it seems that {{ is hard coded within some regular expressions there.
The only solution would be to fork the jquery-tmpl for your project and change these hard coded regular expressions to accommodate your needs.
这个问题已经在这里被问过 jquery 模板标签与 Django 模板冲突! 但我想我应该根据我的经验来补充。
简而言之,我已将这个自定义“原始”模板标签添加到我的 jquery-tmpl/django 项目中: http://www.holovaty.com/writing/django-two-phased-rendering/
This question has already been asked here jquery template tags conflict with Django template! but I thought I would add from my experience.
In a nutshell, I've added this custom "raw" template tag to my jquery-tmpl/django projects: http://www.holovaty.com/writing/django-two-phased-rendering/