原文:http://bbs.javascript.com.cn/simple /index.php?t1022.html
官网:http://code.google.com/p/trimpath/
Trimpath JavaScript 是个轻量级的,基于JavaScript的,跨浏览器,采用APL/GPL开放源代码协议的,可以让你轻松进行基于模板编程方式的纯JS引擎。新浪的评论系统使用的就是此模板。
它有如下的特点:
1、采用标准的JavaScript编写,支持跨浏览器
2、模板语法类似于:FreeMarker,Velocity,Smarty
3、采用简易的语言来描述大段的字串以及Dom/DHTML操作
4、可以很方便的解析XML文件格式的数据到指定模板。
采 用该引擎,可以让它来完全处理View方面的事情,服务端Module直接输出Data就可以。让你的MVC模式连成一体,而且由于View由浏览器来处 理,大大减少了服务器的负担,用来构建Ajax技术的网络信息系统应用是一个非常好的选择。下面将通过翻译该站的文章来给大家介绍这个JST引擎的使用。
CODE:
<html>
<head>
<script language="javascript" src="trimpath/template.js"></script>
</head>
<body>
<div )}
{var saved = htmlList([ 100, 200, 300 ])}
${saved} and ${saved}
运行上述语句将出现
QUOTE:
*1
*2
*3
这样的列表。只需将数据列表赋值给htmlList这个宏,就会帮你把数据通过<li>方式列出来,聪明的你很快就会把它改成<option><td>等应用了。
从宏的访问域来说,默认情况下它是每个模板私有的,但是如果你想定义
一个宏库的话,那么也许你需要在process()之前先定义可以导出宏:contextObject['exported'] ={};
下面是例子:
CODE:
{macro userName(user)}
{if user.aliasName != null && user.aliasName.length > 0}
${user.aliasName}
{else}
${user.login}
{/if}
{/macro}
${exported.userName = userName |eat}
另外,你也可以设置 contextObject['exported'] = contextObject;它也可以正常的工作。
CDATA 文本区段
[code]
{cdata}
...text emitted without JST processing...
{/cdata}
{cdata EOF}
...text emitted without JST processing...
EOF

转帖自:http://bbs.chinaunix.net /viewthread.php?tid=735901

相关文章: