博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
art-template辅助函数和子模板
阅读量:4879 次
发布时间:2019-06-11

本文共 3195 字,大约阅读时间需要 10 分钟。

art-template 前端使用

用途:主要用来处理数据和优化性能,与其他的一些模块化处理数据的插件相比,art-template处理性能好

不废话,上代码 

1.art-template基本语法使用

  <script src="template.js"></script>

  //id为模块的名称

  //语法全部为双标签  {

{}}  里面为变量

  <script id="template" type="text/html">

  {
{if films.length == 0}}
  <p>没有推荐的电影给您</p>
  {
{else}}
  <h1>{
{title}} : {
{films.length}} </h1>
  <ul>
  {
{each films as film index}}
  <li>
  {
{film.name}}
  <del>{
{film.normalPrice }}</del>
  <span>{
{film.nowPrice }}</span>
  <br>
  首映日期:{
{film.time}}
  </li>
  {
{/each}}
  </ul>
  {
{/if}}  

模拟数据:  

var data =

{
title : '推荐的电影' ,
films :
[
{
name : '湄公河公案' ,
normalPrice : 40 ,
nowPrice : 29.9 ,
time : '2016-6-6'
},
{
name : '重返二十岁' ,
normalPrice : 26 ,
nowPrice : 13 ,
time : '2016-12-12'
},
{
name : '长城' ,
normalPrice : 42 ,
nowPrice : 39.9 ,
time : '2017-12-25'
},
{
name : '倩女幽魂7' ,
normalPrice : 80 ,
nowPrice : 80 ,
time : '2018-8-8'
},
{
name : '程序员纪录片--单身汪的成长' ,
normalPrice : 1000 ,
nowPrice : 2000 ,
time : '2020-20-20'
}
]
}

  此处获取数据,并将数据交给template进行处理

  var html = template('template',data);

  渲染页面
  document.body.innerHTML = html

</script>

 

2.辅助函数,其实就是对一些数据做一些处理

price为辅助方法的名字    price_data为处理的数据

方法: template.helper('price',function(price_data){

  //处理的内容

})

以以上代码为例,为film.normalPrice和film.nowPrice数据添加一个¥修饰符

template.helper('price',function(price_data){

  return '¥' + price_data.toFixed(2)

})

在处理的数据处用  '| 方法名'

<del>{

{film.normalPrice | price}}</del>
<span>{
{film.nowPrice | price}}</span>

 

3.模板引入子模板

 不多说,上demo

<script id="web" type="text/html">

  <a href="{
{url}}">{
{name}}</a>
  <br>
</script>
<script id="book" type="text/html">
  <img src="{
{url}}" alt="">
  <br>
  <div>{
{name}}</div>
</script>
<script id="recommend" type="text/html">
{
{if items.length == 0}}
  <h1>抱歉,未找到推荐的相关内容</h1>
{
{else}}
  <h1>{
{title}}:{
{items.length}}个</h1>
  {each items as item}}
  {
{if item.type == 'web'}}
    {
{include 'web' item}}
  {
{else}}
    {
{include 'book' item}}  //include用于引入子模块  'book'模块的id   item传递过去的数据
  {
{/if}}
  {
{/each}}
{
{/if}}
</script>

再献上数据

var data =

{
title : '推荐的书籍和网站' ,
items:
[
{
type : 'web',
name : 'github' ,
url : 'https://github.com'
},
{
type : 'book' ,
name : '平凡的世界' ,
url : 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1484047575704&di=3bc7d59698a2aaeb917598e563aa749e&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fforum%2Fw%253D580%2Fsign%3D08c992b4e9c4b7453494b71efffd1e78%2Fba14695c10385343f96e93bc9113b07ecb80884c.jpg'
},
{
type : 'web' ,
name : 'google' ,
url : 'https://google.com'
},
{
type : 'book' ,
name : '围城' ,
url : 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1484047692883&di=edf1860dc373863422ccdfecd43c1057&imgtype=0&src=http%3A%2F%2Fec4.images-amazon.com%2Fimages%2FI%2F415ZJgXDNEL._SL500_AA300_.jpg'
},
{
type : 'book' ,
name : '汤姆索亚历险记' ,
url : 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1484047764487&di=e6853f746fe6ba15b34266592b8501ac&imgtype=0&src=http%3A%2F%2Fi1.w.hjfile.cn%2Fdoc%2F201111%2Ftom%2520sawyer11530.jpg'
},
]
}
var result = template('recommend',data) ;
document.body.innerHTML = result ;

 

再服务器使用art-template模块利用template引擎可实现项目模块化,具体。。。、

 

官方源码及文档:

语法:

 

转载于:https://www.cnblogs.com/mengwake/p/6878255.html

你可能感兴趣的文章
导入Excel 时间格式验证
查看>>
序列合并求前K小项 POJ2442
查看>>
unity点选构建Mesh并保存OBJ
查看>>
python kmeans实战 - 单机一层聚类(小玩具哦),下次再弄个分布式多次聚类
查看>>
Java主要有那几种文件类型?各自的作用是什么?
查看>>
我的第一个python web开发框架(29)——定制ORM(五)
查看>>
2017.11.18 手把手教你学51单片机-点亮LED
查看>>
xml的创建与解析
查看>>
grep不区分大小写查找字符串方法
查看>>
全双工和半双工
查看>>
2.1什么是软件需求,什么是功能需求
查看>>
linux系统灵活运用灯[android课程3]
查看>>
Android 通用Dialog中设置RecyclerView
查看>>
利用 Android Studio 和 Gradle 打包多版本APK
查看>>
Android 自定义标题栏
查看>>
Android 如何把一个 RelativeLayout或ImageView背景设为透明
查看>>
tomcat优化方向
查看>>
http
查看>>
8-1-组队赛
查看>>
codility: CountTriangles
查看>>