`
luliangok
  • 浏览: 816344 次
文章分类
社区版块
存档分类
最新评论

javascript模板系统 ejs v9

 
阅读更多

的模板系统升一下级, 继续在新公司里面用。 现在几在互联网公司没有不用javascript模板了, 什么TX, 百度, 新浪, 360什么的, 最后瀑布流的流行, 里面又有许多用到模板。

本版本就是改回v6的形态,后端数据还是带@前端才方便查看与调试。昨天也与一TX前端工程师讨论过这个必要性。取得模板中的需要填写的变量,再与后端传过来的JSON进行比较,尽早进行数据验证。这种技术,可以看一看PHP的变量命名就知了,带是带$前缀。

在之前的版本中,如果输出语句带分号或逗号是会报错的

            
<script type="tmpl" id="table_tmpl">
   <table>
       <& for(var i=0,tl = @trs.length,tr;i<tl;i++){ &>
         <& tr = @trs[i]; &>
         <tr>
             <td><&= tr.name; &></td> <td><&= tr.age; &></td> <td><&= tr.sex || "男" &></td>
         </tr>
       <& } &>
 </table>
 <&# 怎么可能不支持图片 &>
 <img src="<&= @href &>">
 </script>

因为内部生成的字符串是这个样子的:

__views(data.tr.name;)

为了防止用户顺手把个逗号或分号上去,本版本自动帮你处理了.

rlastSemi = /[,;]\s*$/
  
// 略
  case "="://处理后台返回的变量(输出到页面的);
                            logic = els[0].substring(1);
                            if(logic.indexOf("@")!==-1){
                                temp.push( startOfHTML, logic.replace(rAt,"$1data.").replace(rlastSemi,''), endOfHTML );
                            }else{
                                temp.push( startOfHTML, logic.replace(rlastSemi,''), endOfHTML );
                            }
                            break;
例子

下面是一个模板,放置于浏览器会忽略解析JS代码的script标签之内, 注意trs与href前面都带有@标识符。

<script type="tmpl" id="table_tmpl">
   <table>
       <& for(var i=0,tl = @trs.length,tr;i<tl;i++){ &>
         <& tr = @trs[i]; &>
         <tr>
             <td><&= tr.name &></td> <td><&= tr.age &></td> <td><&= tr.sex || "男" &></td>
         <&# 导入子模板 &>
         <&= $.ejs("tds_tmpl"); &>
         </tr>
       <& } &>
 </table>
 <&# 怎么可能不支持图片 &>
 <img src="<&= @href &>">
 </script>
 <!--  这是子模板  -->
 <script type="tmpl" id="tds_tmpl">
       <td>静态的表格</d> <td>静态的表格</d> <td>静态的表格</d>
 </script>

这是它的JS代码:

$.require("ready,more/ejs,node", function(){
    var trs = [
        {name:"隐形杀手",age:29,sex:"男"},
        {name:"索拉",age:22,sex:"男"},
        {name:"fesyo",age:23,sex:"女"},
        {name:"恋妖壶",age:18,sex:"男"},
        {name:"竜崎",age:25,sex:"男"},
        {name:"你不懂的",age:30,sex:"女"}
    ]
 
    var html = $.ejs("table_tmpl",{
        trs: trs,
        href: "http://images.cnblogs.com/cnblogs_com/rubylouvre/202906/o_type4.jpg"
    });
    $("#table_tc").html(html)
});
隐形杀手 29 静态的表格 静态的表格 静态的表格
索拉 22 静态的表格 静态的表格 静态的表格
fesyo 23 静态的表格 静态的表格 静态的表格
恋妖壶 18 静态的表格 静态的表格 静态的表格
竜崎 25 静态的表格 静态的表格 静态的表格
你不懂的 30 静态的表格 静态的表格 静态的表格
0
0
分享到:
评论

相关推荐

    ejs v9 javascript模板系统

    描述中提到的“我的模板系统升一下级”,可能指的是EJS从v6版本进行到v9的更新。在EJS的发展历程中,开发者不断地优化和改进模板引擎,使其更加高效、安全和用户友好。从描述中可以得知,模板系统升级后,它将便于在...

    Node.js-EJS-嵌入的JavaScript模板

    EJS - 嵌入的JavaScript模板

    Node.js项目中调用JavaScript的EJS模板库的方法_.docx

    在上述代码中,`str`是通过`fs.readFile`从文件系统中读取的EJS模板,`{ data: { user_data: 'John Doe' } }`则是要传递给模板的数据。`render`函数会将`user_data`变量替换为'John Doe',然后返回生成的HTML。 ...

    很好用的js模板库-ejs

    很好用的javascript模板工具,可以在页面内自定义模板,也可以将整个模板存成单独的文件,语法也与js几乎一致,十分方便

    express - ejs模板引擎

    express ejs模板引擎

    管理系统系列--Nodejs + Express + Ejs + Mysql 后台管理系统.zip

    【标题】"管理系统系列--Nodejs + Express + Ejs + Mysql 后台管理系统" 提供了一套基于Node.js、Express、EJS模板引擎和MySQL数据库构建的后台管理系统的实现方案。这一组合是Web开发中常见且强大的技术栈,特别...

    ejs模版jar

    EJS模版引擎是一款流行的JavaScript模板引擎,常用于前端开发,尤其在构建动态网页时非常实用。它借鉴了JSP(JavaServer Pages)的一些概念,但简化了代码结构,使得编写更加简洁。EJS允许开发者将HTML和JavaScript...

    Node.js的Web模板引擎ejs的入门使用教程

    在 JavaScript 中使用 EJS 渲染模板,你可以这样操作: ```javascript var ejs = require('ejs'); var str = '&lt;%...%&gt;'; // 模板字符串 var data = {names: ['foo', 'bar', 'baz']}; // 数据对象 var ret = ejs....

    JavaScript模板引擎ECT.zip

    ECT是一个新兴的JavaScript模板引擎,主要致力于性能表现。 ECT开发者称,与其他引擎(如Dust、Hogan.js、Fest、Handlebars.js、doT、Swig、Eco、EJS、CoffeeKup和Jade等)相比,ECT目前是最快的,见基准测试。你...

    ejs:节点的嵌入式JavaScript模板

    嵌入式JavaScript模板。 注意:EJS版本2对此版本进行了一些重大更改(特别是删除了过滤器功能)。 v2的工作在这里进行: : EJS v2的文件问题在这里: : 安装 $ npm install ejs 特征 符合 View系统 中间...

    EJS模板下载

    Node 开源模板的选择很多,但有 Classic ASP/PHP/JSP 的经验用起 EJS 来的确可以很自然,也就是说,你能够在 &lt;%...%&gt; 块中安排 JavaScript 代码,利用最传统的方式 输出变量%&gt;(另外 输出变量是不会对 & 等符号进行...

    Node.js-一个简单快速类似ejs的node.js的模板引擎

    "Node.js-一个简单快速类似ejs的node.js的模板引擎"是指一个特定的模板引擎,其设计目标是提供与流行的EJS(Embedded JavaScript)模板引擎相似的功能,但更简洁快速。 EJS是一种常见的用于Node.js的模板引擎,它...

    crm系统html模板

    CRM系统HTML模板是一种用于构建客户关系管理系统的前端资源,它主要由HTML、CSS和JavaScript等技术构成,不包含任何后端功能。这个模板是纯静态的,意味着它只能展示信息,不能处理用户输入的数据或与数据库进行交互...

    只有 20 行的 JavaScript 模板引擎实例详解

    JavaScript 模板引擎是一种在JavaScript中动态生成HTML代码的技术,常用于前后端分离的开发模式。...在实际开发中,更成熟的模板引擎库,如EJS、Handlebars或Pug,提供了更丰富的功能和优化,适用于大型项目的需求。

    Express框架中如何引用ejs模板引擎

    EJS(Embedded JavaScript Templates)是一种简单的模板语言,它允许你将 JavaScript 嵌入到 HTML 文件中,从而生成动态网页内容。本文将详细介绍如何在 Express 项目中配置和使用 EJS 作为模板引擎。 #### 二、...

    ejs:嵌入式JavaScript模板-http:ejs.co

    %&gt; ) 包括客户端支持中间JavaScript的静态缓存模板的静态缓存符合 View系统例子&lt;&#37; if (user) { % &gt; &lt; h2&gt;&lt; %= user . name % &gt;&lt; / h2 &gt;&lt; % } %&gt; 可以通过以下在线尝试EJS: : 。基本用法let ...

    基于JavaScript的模板引擎

    2. **EJS**:EJS是一种轻量级的模板引擎,支持内联表达式和控制结构,如`&lt;% if... %&gt;`和`&lt;% for... %&gt;`, 提供了更丰富的编程能力。 3. **Handlebars**:Handlebars提供了助手函数,可以扩展其功能,允许定义自定义...

    嵌入式JavaScript模板-http://ejs.co-Node.js开发

    嵌入式JavaScript模板安装$ npm install ejs功能带有&lt;%%&gt;的转义输出,具有&lt;%=%&gt;(可配置转义功能)带有&lt的未转义原始输出嵌入式JavaScript模板安装$ npm install ejs功能具有带有(escaped输出的转义...

Global site tag (gtag.js) - Google Analytics