Javascript Underline.js模板中的变量
如何在模板内为使用构建的应用程序设置变量?我只想创建可重用的处理字符串。另外,Javascript Underline.js模板中的变量,javascript,underscore.js,template-engine,Javascript,Underscore.js,Template Engine,如何在模板内为使用构建的应用程序设置变量?我只想创建可重用的处理字符串。另外,underline.js的内置函数(如)是否可以用于处理这些变量 <script type="text/html" id="templateresults"> <p><%= encodeURIComponent(title) %></p> // this works // try 1: var encodedTitle = encodeURIComponent(tit
underline.js
的内置函数(如)是否可以用于处理这些变量
<script type="text/html" id="templateresults">
<p><%= encodeURIComponent(title) %></p> // this works
// try 1:
var encodedTitle = encodeURIComponent(title); // shows up as regular text
<p>'+encodedTitle+'</p> // this doesn't work and shows up as regular text
// try 2:
<% var encodedTitle = encodeURIComponent(title); %> // nothing shows up
<p><% '+encodedTitle+' %></p> // nothing shows up
</script>
//这很有效
//尝试1:
var encodedTitle=encodeURIComponent(title);//显示为常规文本
“+encodedTitle+”//这不起作用,显示为常规文本
//尝试2:
//什么也没出现
//什么也没出现
title
是一个JSON项(文本字符串)
编码输出:此%20is%20a%20Sample%20Title
常规输出:
这是一个示例标题
您的try 2几乎正确,但是您输出encodedTitle的标记缺少开头的=
,并且不需要字符串中的+
。应该是:
<p><%= encodedTitle %></p>
或者,您也可以这样做:
<p><% print(encodedTitle) %></p>
在下划线模板中,任何要计算的javascript都必须包含在
中,因此,第二次尝试仅将javascript作为字符串输出。您在顶部的示例中正确地使用了=
,但在try 2中忽略了它
=
告诉模板引擎以字符串形式输出所附javascript的结果。如果不使用=
,则会执行javascript,但不会输出任何内容。下划线的模板提供了print()
函数作为使用=
的替代方法,我不知道一种方法比另一种更好