08art-template回顾

改模板已经进行更新,分为标准语法和原始语法。两者语法有很多不同,前者相当于一种简单的变形,后者相当与使用js进行编程

特性

  1. 可断点调试
  2. 小而快
  3. 支持ExpressKoawebpack

语法

<script id="testTem" type="text/html">
  // 模板语言
 </script>
  1. {{ }}标准语法
  2. <% %>原始语法
  3. 注意使用script标签调用的是lib/template-web.js
var html = template("testTem",data)
  1. 注意模板使用id,不支持传入文件路径
  2. 直接生成html

知识点

  1. {{}}是编译输出,{{#}}是不编译输出

控制流

{{if value}}
{{else if value}}
{{else}}
{{/if}}
  1. value不需要小括号
  2. 最后使用/if结束

循环

{{each arr}}
{{/each}}
  1. 索引$index
  2. $value

自定义方法

template.helper有点像过滤器

template.helper('show',function(set){
  if (set) {
    return "男"
  }else {
     return "女"
  }
})
  1. 然后在{{}}中就可以直接使用定义的方法了

模板继承

  1. 在骨架中,使用{{block "content"}}{{/block}}方式定义块
  2. 在另一个模板文件中,使用{{extend "./layout.art"}}继承,再使用骨架的各个块

调用子模板

写好两个独立的模板,使用调用语法即可

  1. {{ include children a}}
  • children是模板id
  • a是传入数据
  1. {{ include children }}
  • 和父模板是资源共享

模板变量

// 导入变量
template.default.imports.log = console.log
// 在模板中使用
{{ $imports.log('hello') }}
  1. $data 传入模板的数据
  2. $imports 外部导入的变量�以及全局变量
  3. print 字符串输出函数
  4. include 子模板载入函数
  5. extend 模板继承模板导入函数
  6. block 模板块声明函数

解析规则

  1. 可以改变界定符,比如<%%>改为<??>
  2. 可以添加语法,比如添加es6语法${}

template.defaults

配置文件

API

各种API

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 介绍 Jinja是基于python的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker...
    ZhouLang阅读 12,499评论 0 2
  • Beetl2.7.16中文文档 Beetl作者:李家智 <xiandafu@126.com> 1. 什么是Beet...
    西漠阅读 7,682评论 0 0
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,474评论 0 29
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,401评论 30 472
  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 5,525评论 0 1

友情链接更多精彩内容