zoukankan      html  css  js  c++  java
  • mustache.js使用基本(三)

    作者:zccst

    本节要点是子模块(partials)和分隔符(delimiter)等

    1,子模块(partials)

    /*
    {{>partials}}以>开始表示子模块,如{{> address}};
    
    当结构比较复杂时,我们可以使用该语法将复杂的结构拆分成几个小的子模块,例如:
    */
    
    var data = {
        "company": "Apple",
        "address": {
            "street": "1 Infinite Loop Cupertino</br>",
            "city": "California ",
            "state": "CA ",
            "zip": "95014 "
        },
        "product": ["Macbook ","iPhone ","iPod ","iPad "]
    }
    
    //主模板
    var tpl = "<h1>{{company}}</h1> <ul>{{>address}}</ul>";
    
    //子模板写法1:定义一个子模块对象。里面放子模板。
    var partials = {
        address: "{{#address}}<li>{{street}}</li><li>{{city}}</li><li>{{state}}</li><li>{{zip}}</li>{{/address}}"
    }
    var html = Mustache.render(tpl, data, partials);
    
    
    //子模板写法2:直接写在第三个参数里
    var html = Mustache.render(tpl, data, {address: "{{#address}}<li>{{street}}</li><li>{{city}}</li><li>{{state}}</li><li>{{zip}}</li>{{/address}}"});
    document.getElementById("target").innerHTML = html;

    再举一例:

    var view = {
        name: "Joe",
        winnings: {
            value: 1000
        }
    };
    var template = "Welcome, {{name}}! {{#winnings}} {{>winnings}}{{/winnings}} "
    var partials = {
        winnings: "You just won ${{value}}"
    };
    var output = Mustache.to_html(template, view, partials);
    document.getElementById("target").innerHTML = output;

    输出结果是:

    Welcome, Joe! You just won $1000

    2,分隔符(delimiter)

    (1)写法1:默认的标签风格

    * {{ default_tags }}
    {{=<% %>=}}

    (2)写法2:使用ERB风格
    * <% erb_style_tags %>
    <%={{ }}=%>

    (3)写法3:
    * {{ default_tags_again }}

    3,预解析或缓存parse

    mustache.js会在第一次读模板时缓存,第二次可加快速度,如果需要

    Mustache.pars(template);

    Mustache.render(template, view);

    4,对应的插件

    有jQuery,MooTools,Dojo,YUI,qooxdoo。可以使用Rake来built。

    5,测试(单元测试和整体测试) 

  • 相关阅读:
    适用于IE的自适应大小并且自动居中的对话框页面(javaScript)
    ASP.net后台动态加载JS文件
    分层就是分工与协作
    用Response.Filter生成静态页[要注意并发问题]
    新旧身份证合法性验证及验证算法
    子窗口刷新父窗口的问题
    获取字符串的真实长度
    子窗口刷新父窗口然后关闭
    datalist的数据绑定事件收藏
    通过Response.Filter属性实现网站内容的动态GZIP压缩
  • 原文地址:https://www.cnblogs.com/zccst/p/3760251.html
Copyright © 2011-2022 走看看