artTemplate与php,javascript前端模板引擎框架artTemplate使用总结 - CSDN博客

本文详细介绍了腾讯的artTemplate框架,它是一个类似于mustache和handlerbars的模板引擎。文章通过实例展示了如何进行数据绑定、条件判断、遍历集合、使用辅助函数、预编译模板以及引用子模板等操作。此外,还提供了完整的示例代码,帮助读者快速上手和实践。
摘要由CSDN通过智能技术生成

artTemplate是腾讯开源的前端模板框架,和mustache,handlerbars类似,在web项目中可以很方便的使用,上手快,如果用过mustache,那么几乎可以快速切换到template框架上来。

学习过程:

1、语法介绍:数据绑定:与angularjs类似,只不过视图与模型是单向的绑定,模型改变,视图改变,反过来则不行。

1、data mapping example

{{message}}

//js中使用模板渲染

var data1 = {message:"hello,artTemplate is a javasript framework."};

$("node1").innerHTML = template("tpl1",data1);条件判断:这里支持单一的if,也可以加入else分支,没有else if分支。{{if isShow}}

(2、满足条件展示消息:{{message}}

{{else}}

(2x、条件不满足,展示默认消息

{{/if}}遍历集合:{{each list as item index}}

the index of message is : {{index+1}} -> {{item}}

{{/each}}辅助函数:可以用来将后端请求的数据进行映射,比如1->正常,0->错误。在使用的时候仅需要在表达式后面通过"|func"的方式就可以,比如{{message | filterhandler}},其中filterhandler为自定义的辅助函数。

先定义一个辅助函数,这里定义的是一个简单的转换日期格式函数。template.helper("date2str",function(date){

var today = new Date(date);

var year = today.getFullYear();

var month = today.getMonth()+1;

if(month<10)month = "0"+month;

var day = today.getDate();

if(day<10)day = "0"+day;

return year+"-"+month+"-"+day;

});

使用辅助函数

4、template.helper func example

today is {{datenow | date2str}}

//js代码中调用

var data4 = {datenow:new Date()};

$("node4").innerHTML = template("tpl4",data4);预编译:与使用模板不同的是,预编译需要的是一个string类型的文档片段,然后将数据交给预编译后的模板进行渲染。var tpl5 = "

5、compile example

this is a string the type is not {{type}}

";

$("node5").innerHTML = template.compile(tpl5)({type:"text/template"});引用子模板:

6、include child template example

parent template

{{include 'tpl6-child'}}

child template

2、下载template.js库,引入到html文件中。

3、这里给出一个综合的例子,将前面介绍的一些语法练习一下:

artTemplate example

*{margin:0;}

h1,h2,h3{margin:3px;}

h2,h3{text-indent:20px;}

.parenttemplate{background:#ccc;width:600px;height:60px;}

.childtemplate{background:lightblue;}

function $(id){return document.getElementById(id);}

window.onload = function(){

//data mapping

var data1 = {message:"hello,artTemplate is a javasript framework."};

$("node1").innerHTML = template("tpl1",data1);

//if condition

var data2 = {isShow:true,message:"hello,template"};

$("node2").innerHTML = template("tpl2",data2);

data2.isShow = false;

$("node2x").innerHTML = template("tpl2",data2);

//list foreach

var data3 = {list:["Javascript","JQuery","artTemplate"]};

$("node3").innerHTML = template("tpl3",data3);

//helper function

template.helper("date2str",function(date){

var today = new Date(date);

var year = today.getFullYear();

var month = today.getMonth()+1;

if(month<10)month = "0"+month;

var day = today.getDate();

if(day<10)day = "0"+day;

return year+"-"+month+"-"+day;

});

var data4 = {datenow:new Date()};

$("node4").innerHTML = template("tpl4",data4);

//compile example

var tpl5 = "

5、compile example

this is a string the type is not {{type}}

";

$("node5").innerHTML = template.compile(tpl5)({type:"text/template"});

$("node6").innerHTML = template("tpl6",{});

//escape html

$("node7").innerHTML = template("tpl7",{message:"escape html tag"});

}

1、data mapping example

{{message}}

2、if condition example

{{if isShow}}

(2、满足条件展示消息:{{message}}

{{else}}

(2x、条件不满足,展示默认消息

{{/if}}

3、list example

{{each list as item index}}

the index of message is : {{index+1}} -> {{item}}

{{/each}}

4、template.helper func example

today is {{datenow | date2str}}

6、include child template example

parent template

{{include 'tpl6-child'}}

child template

7、escape html tag example

origin expression : {{#message}}

after escape ==> : {{message}}

运行这个示例,可以得到如下的效果:

9abc54d099ff0c408c7e080893a554e6.png

9440e51359f29dd2cf1d4c072d5fb297.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值