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

    作者:zccst

    本文记录基本使用二,主要讲sections。

    {{#person}} {{/person}}
    1,当person是null, undefined, false, 0, NaN, "", [], 空列表时不渲染


    2,当person不空时渲染一次或多次。如果其中某一些为空,则改行略过,其他行正常。
    var template = '{{#beatles}}* {{name}} <br/>{{/beatles}}';
    var obj = {
        "beatles": [
            { "firstName": "John", "lastName": "Lennon" },
            { "firstName": "Paul", "lastName": "McCartney" },
            { "firstName": "George", "lastName": "Harrison" },
            { "firstName": "Ringo", "lastName": "Starr" }
        ],
        "name": function () {
            console.log(this,this===obj);//结论:由于循环的是beatles,所以this指向的是beatles,而不是obj。
            return this.firstName + " " + this.lastName;
        }
    }

    var rendered = Mustache.render(template,obj);
    $('#target').html(rendered);


    3,相反,就是输出空,仅在 section标签是null, undefined, false, 空list时
    用{{^section}} 替换 {{#section}}

    var template = '{{#repos}}<b>{{name}}</b>{{/repos}} {{^repos}}No repos :({{/repos}}';
    var obj = {
    "repos": []
    }
    var rendered = Mustache.render(template,obj);
    $('#target1').html(rendered);

    4,特殊情况:数组,里面每一项都是字符串时,可以用点代替

    var template = '{{#musketeers}}* {{.}} <br/>{{/musketeers}}';
    var obj = {
        "musketeers": ["Athos", "Aramis", "Porthos", "D'Artagnan"]
    }

    var rendered = Mustache.render(template,obj);
    $('#target').html(rendered);

    5,function

    var template = '{{#bold}}Hi {{name}}.{{/bold}}';
    var obj = {
        "name": "Tater",
        "bold": function () {
            return function (text, render) {
                return "<b>" + render(text) + "</b>";//text是Hi {{name}}.render是原生函数
            }
        }
    }

    var rendered = Mustache.render(template,obj);
    $('#target').html(rendered);

    <div id="target">Loading...</div>

  • 相关阅读:
    (一)Kafka0.8.2官方文档中文版系列入门指南
    Hbase TTL(Time To Live)详解
    java源码学习详解Object类
    设计模式详细解读简单工厂方法模式
    (二)Kafka0.8.2官方文档中文版系列API
    Scala对象相等性判断
    scala中跳出循环的3种方法
    wpf 中借助 Grid 实现随着 Form 大小变化而按比例自动改变宽度或高度。
    static and cache
    约定编程之 Dictionary 的 String 类型的 Key
  • 原文地址:https://www.cnblogs.com/zccst/p/3760230.html
Copyright © 2011-2022 走看看