gpt4 book ai didi

jsrender - 如何更改JsRender模板标签?

转载 作者:行者123 更新时间:2023-12-02 19:19:02 26 4
gpt4 key购买 nike

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

我想将 JsRender 包含在我的项目中。但 JsRender 也使用相同的标签 {{:name}} ,所以存在冲突并且没有任何作用。如何使用自定义标签更改默认的 JsRender 标签,例如 Ruby <%= name %>

更新:

出于某种原因,我无法使其与控制流标签一起使用,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 %>

最佳答案

JsRender 让您可以更改分隔符,如下所示:

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

那么你会写<%: name %> .

如果使用JsViews,还可以设置绑定(bind)字符^{^{ - 通过写:

$.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%> 。等等

参见Setting tag delimiters for JsRender用于文档。

参见http://www.jsviews.com/#jsrtags对于标签语法。

关于jsrender - 如何更改JsRender模板标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29493005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com