requirej入门nodeTpl使用(三)

基本语法

HTML部分

在模板中的 HTML 部分,使用定界符“<?”和“?>”作为语法的开始和结束。

在定界符内,可以书写任意JavaScript语句,如:

1 <?for(var i=0; i<10; i++){?>
2   <p>hello, world</p>
3 <?}?>

使用等于号“=”来输出对应的值:

1 <?for(var i=0; i<10; i++){?>
2   <p>hello, world, 第 <?=i?> 次</p>
3 <?}?>

直接使用“@属性名”来表示传入的对象对应的属性。

假如传入的对象为:

1 {
2   "title": "我是传入的标题",
3   "favor": ["足球", "篮球", "乒乓球", "琉璃球"]
4 }

在模板中,可以通过 @title@favor 来分别引用传入的 titlefavor 值:

1 <h1><?=@title?></h1>
2 <ul>
3   <?for(var i=0; i<@favor.length; i++){?>
4     <li><?=i?>:<?=@favor[i]?></li>
5   <?}?>
6 </ul>

XSS安全防范

=” 默认会经过 XSS 安全过滤,以确保输出到页面中的内容是安全的,例如:

1 {
2   "title": "<script>alert(0);</script>",
3 }
4 <h1><?=@title?></h1>

最终编译的结果是:

<h1>&lt;script&gt;alert(0);&lt;/script&gt;</h1>

如果你不想过滤 XSS,你可以使用 “==” 来代替 “=”,如:

<h1><?==@title?></h1>

将会输出:

<h1><script>alert(0);</script></h1>

文件来源:http://www.nodetpl.com/cn/grammar.html

原文地址:https://www.cnblogs.com/congxueda/p/5950386.html