我用Twig。它使用以下标记:{{ 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 %>发布于 2015-04-07 17:16:28
JsRender让我们更改分隔符,如下所示:
$.views.settings.delimiters("<%", "%>");这样你就可以写<%: name %>了。
如果使用JsViews,还可以在{^{中设置绑定字符^ --方法是:
$.views.settings.delimiters("<%", "%>", "*");然后使用<*%: name %>。
示例(以下面的代码段形式运行)
<%!-- 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>
请注意,您必须简单地将原始的"{{"和"}}"字符替换为所选的替换字符,而不是更改空白。替换后,<% for items%>将是不正确的,因为正确的语法是{{for items}},而不是{{ for items}}。(这是你的错误.)应该是<%for items%>。等。
有关文档,请参见设置JsRender的标记分隔符。
有关标记语法,请参见http://www.jsviews.com/#jsrtags。
https://stackoverflow.com/questions/29493005
复制相似问题