Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Underline.js模板中的变量_Javascript_Underscore.js_Template Engine - Fatal编程技术网

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()
函数作为使用
=
的替代方法,我不知道一种方法比另一种更好