JavaScript Common Templates 第三版简要文档
文档文法描述 :
对于要描述的对象使用如下文法
name:type||example description
调用 :创建一个jCT的实例,此实例具有自己解析/执行模板的能力
var jct = new jCT(txt,path);
参数 :
txt:"" 模板原文本对应属性Fn.Src
path:"" 模板文件的url所在路径(不是url)对应属性Fn.Path
建立 :解析模板使模板代码化
jct.Build([如果直接执行,传入执行的数据对象])
例子 :
jct.Build(obj)
同效果
jct.Build().Exec(obj);
注意:如果带参数的话,是否执行Exec会受ReBuild扩展影响,参见ReBuild扩展
执行 :执行模板,默认返回模板执行后的文本数据,可以通过 Exec 扩展语法制定
jct.Exec([执行的数据对象])
默认参数 :
D 如果没有制定Exec扩展语法的话,此参数是 Exec 的默认参数,表示传入的数据
保留字串 :
/*...*/ 再使用Exec扩展语法时用于替换主体过程的占位符
jCT的实例保留方法和属性 :
Fn={ 用于保留jCT实例创建,执行时的数据,有些是为了方便调试 A:[] SRC的模板数组形式表示 D:{} 用于保留执行(Exec)模板时候传入的参数 V:[] 在执行(Exec)模板过程当中生成结果的数组形式 EXEC:[] Build模板的时候生成的主体过程数组形式 RUN:() 由 Run 扩展语法获得的只运行一次函数 ERROR:{} Build异常时的错误信息. Path:"" 保留模板的URL路径,由调用模板的函数提供,目的是考虑到这个可能会有很多的用途。 Src:"" 模板原文本,由调用模板的函数提供 src:"" 经过清理后的模板文本 Tag:{ 当前选定的模板标签风格,是一个指向Tags内某个风格的引用,结构如下 block:{ jCT模板块标记设定 begin:"" 标记的开始字符串 end:"" 标记的结束字符串 } exp:{} jCT模板取值表达式设定 ext:{} jCT模板扩展语法标记设定,参见见扩展语法一节 clean:{} jCT模板清理标记设定 } Tags:{ 所有支持的模板标签风格,内置三种风 comment:{ //注释标签风格 block:{begin:''}, exp:{begin:'+-',end:'-+'}, ext:{begin:'/*+',end:'*/'}, clean:{begin:'',end:''} }, script:{ //脚本标签风格 block:{begin:'',end:''}, exp:{begin:'+-',end:'-+'}, ext:{begin:'/*+',end:'*/'}, clean:{begin:'',end:''} }, code:{ //code标签风格 block:{begin:'',end:''}, exp:{begin:'+-',end:'-+'}, ext:{begin:'/*+',end:'*/'}, clean:{begin:'',end:''} } } Clean:() 清理模板,参数对应属性的TAG Parse:() 模板的解析 Slice:() 模板分段函数 } Exec:() 执行模板,参见Exec扩展 Build:() 构建模板方法 ReBuild:() 在Build期间执行,参见ReBuild扩展 GetView:() 便捷的获取 return this.Fn.V.join("");
扩展语法 :jCT模板使用的是原生的 JavaScript 语法,为了达到模板的高度可制定性设计了扩展语法
Exec: 自定义的构建 Exec 方法的主体内容 <script type="jct">/*+Exec*/ var D=arguments[0]||{}; /*...*/ $('#mainbody').html(this.GetView()); </script> <script type="jct">/*+Exec*/ var D=arguments[0]||{}; with(D){/*...*/} $('#mainbody').html(this.GetView()); </script> ReBuild: 当执行Build时发生,如果定义了ReBuild并且有任何值返回,Build都会忽视传入的参数 下面的例子没有返回值,那么会执行foo(),如果使用jct.Build(obj),那么jct.Exec(obj)会被执行 <script type="jct">/*+ReBuild*/ foo(); </script> 下面的例子有返回值,那么会执行foo(),如果使用jct.Build(obj),那么jct.Exec(obj)不会被执行 <script type="jct">/*+ReBuild*/ foo(); return true; </script> Run: 扩展语法获得的只运行一次 <script type="jct">/*+Run*/ foo(); </script> Child: 定义一个子jCT实例 <script type="jct">/*+Child childname*/</script> Templates Source Code <script type="jct">/*-Child childname*/</script> /*...*/: 保留字串也可以算作扩展语法,只能出现在 Exec扩展语法中
(因为贴在代码里格式较整齐,所以就利用了一下)