zoukankan      html  css  js  c++  java
  • EJS学习(五)之EJS的CommonJs规范版本

    EJS的CommonJs规范版本

    ejs分为两个版本一个是CommonJs版本,另外一个是AMD规范的版本.

    基础:html页面

    安装:<script type="text/javascript" src="./node_modules/ejs/ejs.js"></script>

    检查:ejs会将自身挂载到window对象上,所以你只要console.log(ejs)控制台有输出就说明安装成功了.

    调试:在浏览器中

    注意:和AMD规范版本不同,EJS的CommonJs版本要写在html中

    查看是否成功引入ejs

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script src="./ejs.min.js"></script>
        <script>
            window.onload = function() {
                console.log(ejs);
            }
        </script>
    </head>
    <body>
        
    </body>
    </html>

    渲染单个数据

    方法一:ejs.render(str,data,options)

    实例一:

    // 14.html内容:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script src="./ejs.min.js"></script>
        <script>
            window.onload = function() {
                var string = ejs.render('<h2><%= title %></h2>',{title:'hello'});
                document.getElementsByTagName('body')[0].innerHTML = string;
            }
        </script>
    </head>
    <body>
        
    </body>
    </html>
    
    // 在浏览器中打开页面输出 hello

    实例二:

    // 实际应该展示在页面上的Dom
    <div id="interpolation"></div>
    
    // 模版
    <script id="interpolationtmpl" type="text/x-dot-template">
        <!-- 新增用户弹窗 -->
        <div id="addSourcePopup" class="modal fade q-popup" tabindex="-1" role="dialog"
             aria-labelledby="myModalLabel" aria-hidden="true" data-child-node-id="q-popup" style="margin-top: 10px;">
            <div class="q-popup-modal modal-dialog" style=" 900px;background-color: #ffffff;">
                <div class="popup-header modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                    {{? it.data && it.data.id}}
                    更新计划
                    {{??}}
                    新增计划
                    {{?}}
                </div>
            </div>
        </div>
    </script>
    
    // 编译和渲染
    jQuery.ajax({
         type: "get",
         url: "http://",
         dataType: "json",
         success: function (result) {
         if (result && "0" == result.code && result.json) {
              var str = ejs.render($("#interpolationtmpl").text(),result.json); // 取到模版并使用数据渲染
            $("#interpolation").html(str); // 添加进之前准备好的Dom
            }
         }
     });     

    方法二:ejs.compile(str,options)(data)

    // 实际应该展示在页面上的Dom
    <div id="interpolation"></div>
    
    // 模版
    <script id="interpolationtmpl" type="text/x-dot-template">
        <!-- 新增用户弹窗 -->
        <div id="addSourcePopup" class="modal fade q-popup" tabindex="-1" role="dialog"
             aria-labelledby="myModalLabel" aria-hidden="true" data-child-node-id="q-popup" style="margin-top: 10px;">
            <div class="q-popup-modal modal-dialog" style=" 900px;background-color: #ffffff;">
                <div class="popup-header modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                    {{? it.data && it.data.id}}
                    更新计划
                    {{??}}
                    新增计划
                    {{?}}
                </div>
            </div>
        </div>
    </script>
    
    // 编译和渲染
    jQuery.ajax({
         type: "get",
         url: "http://",
         dataType: "json",
         success: function (result) {
         if (result && "0" == result.code && result.json) {
              var template = ejs.compile($("#interpolationtmpl").text()); // 取到模版
              var rs = template(result.json); // 使用数据渲染
            $("#interpolation").html(rs); // 添加进之前准备好的Dom
            }
         }
     });     

    其他用法和AMD规范的版本相同

     

  • 相关阅读:
    【LeetCode】456. 132 Pattern
    【Python&Sort】QuickSort
    Python虚拟环境的配置
    【LeetCode】459. Repeated Substring Pattern
    【LeetCode】462. Minimum Moves to Equal Array Elements II
    【LeetCode】20. Valid Parentheses
    radio 获取选中值
    页面加载时自动执行(加载)js的几种方法
    加一个字段: updateTime 更新时间
    多用户同时处理同一条数据解决办法
  • 原文地址:https://www.cnblogs.com/kunmomo/p/11468354.html
Copyright © 2011-2022 走看看