• JavaScript模板语言


    JavaScript模板语言

     

    1. artTemplate

    1.1 快速入门

    1.2 语法

    1.2.1 原始与标准

    1.2.2 输出

    1.2.3 条件

    1.2.3 循环

    1.2.3 设置变量

    1.2.4 模板继承

    1.2.5 子模板

    1.2.6 过滤器

    1.2.7 调试

    1.2.8 模板变量

    1.2.9 压缩页面

    1.2.10 API

    2. thymeleaf

    spring-boot 中thymeleaf使用目录结构:

    使用方式

    遇到问题

    bug1

     

     

    1. artTemplate

     

    -中文文档:https://aui.github.io/art-template/zh-cn/docs/

    1.1 快速入门

    引入js:

    定义模板:

    使用模板:

    1.2 语法

    1.2.1 原始与标准

    更推荐使用标准语法,更加简洁,但是原始语法逻辑更加明确

    1.2.2 输出

    不允许输出富文本:

    <h1>{{ value }}</h1>

    原文输出【允许输出富文本】:

    <h1>{{@ value }}</h1>

    1.2.3 条件

    {{if flag == 0}}...{{ else if flag == -1 }}...{{ else }} ... {{ /if }}

    1.2.3 循环

     

     

     

    1.2.3 设置变量

    1.2.4 模板继承

    定义(layout.art):

    使用(index.art):

     

    1.2.5 子模板

    1.2.6 过滤器

    在上次做的django项目里自己曾写过一个过滤器

    注册过滤器

    template.defaults.imports.dateFormat = function(date, format){/*[code..]*/};
    
    template.defaults.imports.timestamp = function(value){return value * 1000};

    过滤器函数第一个参数接受目标值。

    标准语法

    {{date | timestamp | dateFormat 'yyyy-MM-dd hh:mm:ss'}}

    {{value | filter}} 过滤器语法类似管道操作符,它的上一个输出作为下一个输入。

     

    1.2.7 调试

    1.2.8 模板变量

    模板变量:

    导入变量

    内置变量清单

    1.2.9 压缩页面

    开启:

    template.defaults.minimize = true;

    配置:

    参见:https://github.com/kangax/html-minifier

     

    默认配置:

    1.2.10 API

    § template

    函数:template(filename,content)

    根据模板名渲染模板。

     参数:

     {string} filename

     {Object,string} content

     返回值:

     如果 content 为 Object,则渲染模板并返回 string

     如果 content 为 string,则编译模板并返回 function

     

    var html = template('/welcome.art', {

        value: 'aui'

    });

     

    浏览器版本无法加载外部文件,filename 为存放模板的元素 id

    § complie

    § render

    返回渲染的结果

     

    § helper

    //时间戳转换
    template.helper('dateFormat' , function (date, format) {
        date = new Date(date);
        var map = {
            "M": date.getMonth() + 1, //月份
            "d": date.getDate(), //
            "h": date.getHours(), //小时
            "m": date.getMinutes(), //
            "s": date.getSeconds(), //
            "q": Math.floor((date.getMonth() + 3) / 3), //季度
            "S": date.getMilliseconds() //毫秒
        };
        format = format.replace(/([yMdhmsqS])+/g, function (all, t) {
            var v = map[t];
            if (v !== undefined) {
                if (all.length > 1) {
                    v = '0' + v;
                    v = v.substr(v.length - 2);
                }
                return v;
            } else if (t === 'y') {
                return (date.getFullYear() + '').substr(4 - all.length);
            }
            return all;
        });
        return format;
    };

    以上是artTemplate4.0以上的写法,4.0以后不在使用template.helper而是使用:

    //时间戳转换
    template.defaults.imports.dateFormat = function (date, format) {
        date = new Date(date);
        var map = {
            "M": date.getMonth() + 1, //月份
            "d": date.getDate(), //
            "h": date.getHours(), //小时
            "m": date.getMinutes(), //
            "s": date.getSeconds(), //
            "q": Math.floor((date.getMonth() + 3) / 3), //季度
            "S": date.getMilliseconds() //毫秒
        };
        format = format.replace(/([yMdhmsqS])+/g, function (all, t) {
            var v = map[t];
            if (v !== undefined) {
                if (all.length > 1) {
                    v = '0' + v;
                    v = v.substr(v.length - 2);
                }
                return v;
            } else if (t === 'y') {
                return (date.getFullYear() + '').substr(4 - all.length);
            }
            return all;
        });
        return format;
    };

    在模板页面中使用:

     

     

     

    2. thymeleaf

    spring-boot 中thymeleaf使用目录结构:


    使用方式

     

    遇到问题

    bug1

    使用thymeleaf模板的html页面的js里不能正常使用for循环也不能使用$.each,解决方案:

    /* <![CDATA[ */
         for(var i=1;i<3;i++){
          alert(i);
        }
     /* ]]> */

     

    前进时,请别遗忘了身后的脚印。
  • 相关阅读:
    Pandas注意事项&窍门
    Pandas稀疏数据
    Pandas IO工具
    (bc 1002)hdu 6016 count the sheep
    (bc 1001) hdu 6015 skip the class
    hdu 1874 畅通工程续(迪杰斯特拉优先队列,floyd,spfa)
    克鲁斯卡尔(并查集)hdu 1233
    克鲁斯卡尔算法(最短路算法详解)
    最小生成树(普利姆算法、克鲁斯卡尔算法)
    pair 对组
  • 原文地址:https://www.cnblogs.com/liudaihuablogs/p/13468487.html
Copyright © 2020-2023  润新知