zoukankan      html  css  js  c++  java
  • 模版引擎Handlebars和Mustache

    Handlebars是一款很高效的模版引擎,提供语意化的模版语句,最大的兼容Mustache模版引擎, 提供最大的Mustache模版引擎兼容, 无需学习新语法即可使用;

    下面这个是基本的模版表达式,

    其中 {{ 和 }} 之间为handlerbars的变量;

    <div class="entry">
      <h1>{{title}}</h1>
      <div class="body">
        {{body}}
      </div>
    </div>

    拓展:Handlebars 的使用

    其实就是模板化,这是以前就开始推崇的面向数据编程的一个方式。比如jquery template

    web 开发中,js 解析JSON 是经常的事情。非常繁琐。handlebars 使用了模版,只要你定义一个模版,提供一个json对象,handlebars 就能吧json对象放到你定的模版中,非常方便好用! 下面直接上代码: 

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    <html>  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>Handlebars demo</title>  
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>  
    <script type="text/javascript" src="js/handlebars-1.0.0.beta.6.js"></script>  
    <script type="text/javascript" src="js/myjs.js"></script>  
    <style type="text/css"></style>  
    </head>  
    <body>  
        <h2>Simple handlebars demo</h2>  
        <button id="btn_simple">Click me</button>  
        <div id="my_div">  
      
        </div>  
        <h2>Handlebars Helpers demo</h2>  
        <button id="btn_helper">Click me</button>  
        <div id="helper_div">  
      
        </div>  
        <script id="some-template" type="text/x-handlebars-template">  
              <table>  
                <thead>  
                  <th>Username</th>  
                  <th>Real Name</th>  
                  <th>Email</th>  
                </thead>  
                <tbody>  
                  {{#if users}}  
                    <tr>  
                      <td>{{username}}</td>  
                      <td>{{firstName}} {{lastName}}</td>  
                      <td>{{email}}</td>  
                    </tr>  
                  {{else}}  
                    <tr>  
                      <td colspan="3">NO users!</td>  
                    </tr>  
                  {{/if}}  
                </tbody>  
              </table>  
        </script>  
        <script id="helper-template" type="text/x-handlebars-template">  
            <div>  
              <h1>By {{fullName author}}</h1>  
              <div>{{body}}</div>  
      
              <h1>Comments</h1>  
      
              {{#each comments}}  
              <h2>By {{fullName author}}</h2>  
              <div>{{body}}</h2>  
              {{/each}}  
            </div>  
        </script>  
    </body>  
    </html>  
    $(document).ready(function(){  
        Handlebars.registerHelper('fullName', function(person) {  
          return person.firstName + " " + person.lastName;  
        });  
      $("#btn_simple").click(function(){  
        // $(this).hide();  
        showTemplate();  
      });  
       $("#btn_helper").click(function(){  
      
        showHowUseHelper();  
      });  
    });  
    // var context = {title: "My New Post", body: "This is my first post!"};  
    var persion = {title :"My New Post",body:"This is my first post!"}  
    function showTemplate(){  
        var source   = $("#some-template").html();  
        var template = Handlebars.compile(source);  
          var data = { users: [  
              {username: "alan", firstName: "Alan", lastName: "Johnson", email: "alan@test.com" },  
              {username: "allison", firstName: "Allison", lastName: "House", email: "allison@test.com" },  
              {username: "ryan", firstName: "Ryan", lastName: "Carson", email: "ryan@test.com" }  
            ]};  
          $("#my_div").html(template(data));;  
    }  
      
    function showHowUseHelper(){  
        var context = {  
          author: {firstName: "Alan", lastName: "Johnson"},  
          body: "I Love Handlebars",  
          comments: [{  
            author: {firstName: "Yehuda", lastName: "Katz"},  
            body: "Me too!"  
          }]  
        };  
        var source   = $("#helper-template").html();  
        var template = Handlebars.compile(source);  
        $("#helper_div").html(template(context));;  
          
    }  

    .

  • 相关阅读:
    SharePoint 2013 安装.NET Framework 3.5 报错
    SharePoint 2016 配置工作流环境
    SharePoint 2016 站点注册工作流服务报错
    Work Management Service application in SharePoint 2016
    SharePoint 2016 安装 Cumulative Update for Service Bus 1.0 (KB2799752)报错
    SharePoint 2016 工作流报错“没有适用于此应用程序的地址”
    SharePoint 2016 工作流报错“未安装应用程序管理共享服务代理”
    SharePoint JavaScript API in application pages
    SharePoint 2016 每天预热脚本介绍
    SharePoint 无法删除搜索服务应用程序
  • 原文地址:https://www.cnblogs.com/fightjianxian/p/11703390.html
Copyright © 2011-2022 走看看