【问题标题】:How to change JsRender template tags?如何更改 JsRender 模板标签?
【发布时间】:2015-04-07 13:39:32
【问题描述】:

我用树枝。它使用这些标签:{{ name }}

我想在我的项目中包含 JsRender。但是 JsRender 也使用了相同的标签{{:name}},所以发生了冲突,没有任何效果。如何使用自定义标签更改默认的 JsRender 标签,比如 Ruby 之类的 <%= name %>

UPD:

由于某种原因,我无法使其与控制流标签一起使用,for 与自定义标签的行为不符。为什么会这样?

这是一个模板:

<script id="myTmpl" type="text/x-jsrender">
    <%!-- This is a copmment %>
    <% for data %>
        <%:key%>
    <% /for %>
</script>

这里是js代码:

var template = $.templates("#myTmpl");
var htmlOutput = template.render(data);
$(".div").html(htmlOutput);

这是一个渲染结果:

<%!-- This is a copmment %> <% for data %> <% /for %>

【问题讨论】:

  • 您在标签中添加了一些不正确的空格。请参阅下面的答案中的工作 sn-p。

标签: jsrender jsviews


【解决方案1】:

JsRender 让你改变分隔符,像这样:

$.views.settings.delimiters("<%", "%>");

那么你就写&lt;%: name %&gt;

如果你使用JsViews,你也可以在{^{中设置绑定字符^——通过写法:

$.views.settings.delimiters("<%", "%>", "*");

然后使用&lt;*%: name %&gt;

示例(在下面运行为 sn-p):

<%!-- a comment --%>

<%:title%>
<%for items%>
    <div><%:name %></div>
<%/for%>

$.views.settings.delimiters("<%", "%>");

var data = {
  title:"The Title",
  items: [
	{name:"Item one"},
		{name:"Item two"}
	]
};

var template = $.templates("#myTmpl");

var htmlOutput = template.render(data);

$("#result").html(htmlOutput);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//www.jsviews.com/download/jsrender.js"></script>

<script id="myTmpl" type="text/x-jsrender">
<%!-- a comment --%>
<%:title%>
<%for items%>
	<div><%:name %></div>
<%/for%>
</script>

<div id="result"></div>

请注意,您必须简单地将原来的"{{""}}" 字符替换为所选的替换字符,但不要更改空格。替换后,&lt;% for items%&gt; 将不正确,因为正确的语法是 {{for items}},而不是 {{ for items}}。 (那是你上面的错误......)。应该是&lt;%for items%&gt;。等等

有关文档,请参阅 Setting tag delimiters for JsRender

标签语法见http://www.jsviews.com/#jsrtags

【讨论】:

  • 它似乎适用于数据路径或表达式标签,但不适用于 for 标签,因为我怀疑它不适用于其他控制流标签,如 for - @987654340 @,else 等。它肯定不适用于评论标签。如何使用所有其他标签?控制流标签。请查看我的问题的更新。
  • 显然您需要遵循 JsRender 语法。从工作模板开始,然后替换字符。它是 {{for ...}}...{{/for}},而不是 {{ for ... }}...{{ /for }}。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2014-09-03
  • 2022-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多