`
king_jw
  • 浏览: 4783 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
社区版块
存档分类
最新评论

canjs基础教程之EJS

阅读更多

EJS

EJS是Canjs的默认的模版语言,当和Observes一起使用时可以提供Live bind.如下一个EJS模版示例:

1.<script type="text/ejs" id="todoList">

2.<%for(var i =0; i < todos.length;++i){%>

3.    <li><%=this[i].attr('description')</li>

4.<%}%>

5.</script>

可以使用can.view渲染模版,使用方式如下:

1.Todo.findAll({},function(todos){

2.    document.getElementById('list')

3.        .appendChild(can.view('todoList', todos));

4.});

从给出的示例中我们可以看到,在模版中可以使用this来访替代参数todos,EJS也可以不用添加前缀this.就可以直接访问参数的属性.

Magic tags

有三种常用的标签:

<% %>   在标签里面可以执行任意的JavaScript代码,该标签不修改也不填充模版.

<%= %> 在标签里面面可以执行JavaScript声明,并且在模版对于的订地方输出Html- escaped 结果.Eg:

模版

<div>My favorite element is <%='<b>blink</b>'%>.</div>

输出的结果:

<div>My favorite element is &lt;b&gt;blink&lt;/b&gt;.</div>

<%== %>  在标签里面面可以执行JavaScript声明,并且在模版对应的地方输出原始 结果.

模版

<div>My favorite element is <%=='<b>blink</b>'%>.</div>

输出的结果:

<div>My favorite element is <b>blink</b>.</div>

这种标签常用于模版中嵌套模版:eg

1.<% todos.each(function(todo){%>

2.    <li><%== can.view.render('todoEJS', todo);%></li>

3.<%});%>

Live binding

Live binding会在用于填充模版的Date(Observes)有变化时自动更新嵌入在DOM中EJS模版内容,在模版中使用attr访问Data的属性.

注意:数组的Livebinding 要使用 data.each方式去循环遍历

错误写法:

1.<%for(var i =0; i < todos.length;++i){%>

2.    <li><%= todos[i].attr('name')%></li>

3.<%}%>

正确写法:  

1.<% todos.each(function(){%>

2.    <li><%= todo.attr('name')%></li>

3.<%});%>

 

Element callbacks

 

<%= %> 或 <%==%>标签里面定义的是一个方法时,那么该方法将会执行,方法的第一个尝试是包裹该标签的元素.这常用于如下形式:

<img src="a.gif"<%=function(e){e.style.display='none';}%>/>

并且当方法内语句就是一个单行的时候可以简写成

1.  <div <%= ( element ) ->element.style.display = 'none' %> >

2.  Test

3.  </div>

通常来说这个功能是让你能够将对象缓存在这个element上:

1.  <div <%= ( el ) ->el.data('student', student) %> >

2.  Test

3.  </div>

然后如果用户点击这个div的时候我们就能很容易的得到其对应的Model实例

1.  $('div').click(function() {

2.      var student = this.data('student');

3.      // TODO:some other logic.

4.  }) 

 

1. <% todos.each(function(todo){%>

2. <li <%=(el)-> can.data(el,'todo', todo)%>>

3.     <%= todo.attr('description')%>

4. </li>

5. <%})%>

0
0
分享到:
评论

相关推荐

    Express中使用ejs新建项目以及ejs中实现传参、局部视图include、循环列表数据的使用.rar

    在本文中,我们将深入探讨如何在Express框架中使用EJS模板...通过这些基础,你可以开始构建动态、交互式的Web应用程序。随着你对Express和EJS的深入理解,你会发现它们为开发高效、可维护的Web应用提供了强大的工具。

    前端开源库-ejs-lint

    **EJS-Lint:前端开发中的模板语法检查利器** EJS-Lint 是一款专为EJS(Embedded JavaScript)模板设计的语法检查工具,它旨在帮助前端开发者在编码过程中避免因语法错误导致的问题,提高代码质量和可维护性。EJS是...

    nodejs+mysql+ejs完成的博客

    在本项目中,“nodejs+mysql+ejs完成的博客”是一个使用Node.js后端框架、MySQL数据库和EJS模板引擎构建的全功能博客系统。这个系统涵盖了用户管理、内容展示、交互等多个核心功能,让我们来深入探讨这些技术的运用...

    express - ejs模板引擎

    express ejs模板引擎

    node.js中EJS 模板快速入门教程

    通过以上内容,我们可以了解到EJS模板的基本概念、安装方法、基础语法、渲染方式、模板的编译和缓存机制、自定义标签和分隔符、过滤器的使用以及在客户端的使用方法。掌握这些知识点,就能在Node.js项目中有效地利用...

    ejs-2.3.2-0-src.tgz

    标题中的“ejs-2.3.2-0-src.tgz”是一个软件源代码包,它使用了tar和gzip两种工具进行压缩,常见的在Linux或Unix系统中使用。EJS是Embedded JavaScript的缩写,它是一种轻量级的模板引擎,允许开发者在HTML中嵌入...

    canjs Demo

    CanJS 的强项之一是它的双向数据绑定机制。通过`.attr()`和`.observe()`方法,你可以轻松地在视图和模型之间建立关联,实现数据的实时更新。例如,在`demo`中的某个文件可能展示了如何在一个输入框和对应的模型属性...

    ejs模版jar

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

    EJS实例.zip

    EJS 使用说明,ejs工具包,并将ejs的具体使用在一个例子中简单明了的体现

    ARM926EJS FreeRTOS移植KEIL GCC.zip

    7. **优化**:在满足功能需求的基础上,还需要考虑性能优化,如减少上下文切换的开销,合理分配内存,以及优化中断响应时间。 总结来说,"ARM926EJS FreeRTOS移植KEIL GCC.zip"项目涉及了嵌入式系统开发、实时操作...

    EJS TreeGrid

    压缩包中的`Examples`和`Tutorials`目录包含了一系列示例和教程,帮助开发者快速上手和理解EJS TreeGrid的用法。这些实例展示了如何加载数据、配置列、实现交互操作以及使用甘特图等,是学习和掌握控件功能的重要...

    前端开源库-html-ejs-loader

    EJS语法简洁,易于理解和使用,对于前后端分离的项目尤其适用。EJS-compiled-loader则是用于webpack构建过程中的一个加载器,它负责解析和预编译EJS模板,使得在运行时可以快速高效地生成HTML。 Webpack是现代...

    前端开源库-express-ejs-layouts

    前端开源库-express-ejs-layoutsExpress EJS布局,Express中EJS的布局支持。

    nodejs+mongodb+express+ejs+connect-mongo

    **Node.js + MongoDB + Express + EJS + Connect-Mongo 知识点详解** Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者在服务器端使用 JavaScript,提供了丰富的库和框架来简化开发流程。在...

    ejs常用操作.zip

    EJS的灵活性和简洁性使其成为Node.js开发者的首选模板引擎之一。它不仅可以处理简单的数据绑定,还可以执行复杂的逻辑,同时保持模板清晰易读。掌握EJS的操作对于提升Node.js应用的用户体验和开发效率至关重要。在...

    nodejs的express框架+ejs开发步骤

    一个nodejs的express框架+ejs的开发步骤,适合入门。

    nodejs + express + ejs + mongodb 一个非常简单的前后端开发的实例

    这是一个基础的Web应用搭建流程,适合初学者理解和实践。 首先,让我们从Node.js开始。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript编写代码,实现全栈开发。Node....

    ejs-src-0.9.9-3.tar.gz_ejs_embeddedjavascript_嵌入式 服务器

    EJS-0.9.9是EJS的一个旧版本,这个版本可能包含了对早期Node.js版本的支持。 在“ejs-src-0.9.9-3.tar.gz”这个压缩包中,我们主要会找到EJS库的源代码,可能包括以下部分: 1. **源码文件**:`ejs-0.9.9`目录下...

    浅析嵌入式 JS 模板引擎之EJS

    EJS后缀名为”ejs” EJS 支持我们把JS代码直接写在标签内 EJS 能够缓存 JS函数的中间代码,使执行速度得到极大的提升 EJS 调错极其简单:因为它所有错误都是普通的 JS 异常,而且也会给我们输出异常发生的具体位置 ...

    12-ejs网址:httpsejs.bootcss.com.html

    12-ejs网址:httpsejs.bootcss.com

Global site tag (gtag.js) - Google Analytics