秋前端开发课件-jse2e-5视图引擎_第1页
秋前端开发课件-jse2e-5视图引擎_第2页
秋前端开发课件-jse2e-5视图引擎_第3页
秋前端开发课件-jse2e-5视图引擎_第4页
秋前端开发课件-jse2e-5视图引擎_第5页
免费预览已结束,剩余29页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5-Node.js视图引擎2015

Summer,

xi'an本章内容视图引擎简介客户端视图引擎KendoUI、Handlebars.js、AngularJS服务器端视图引擎Jade视图引擎视图引擎视图引擎(模板引擎)是创建视图的框架/库使用编程语言Web视图引擎是HTML和JavaScript的混合给定的模板/视图,JavaScript创建了有效的HTML代码JavaScript视图引擎有大量的JavaScript视图引擎,能分离到客户端和服务器端客户端:KendoUI,Handlebars.js,jQuery,AngularJS,

等服务器端:Jade,

HAML,

EJS,

Vash,

等为什么使用视图引擎?提高开发者的效率,并简化HTML代码编写自动创建DOM元素,几乎不用手动的DOM客户端视图引擎KendoUI,

AngularJS,

Handlebars.js客户端视图引擎客户端视图引擎(模板)用于解析数据数据从一些地方获取如,用AJAX数据也可以是JSON、XML或纯文本服务器端视图引擎解析服务器上的数据客户端(浏览器)接收到准备使用的HTML模板用Handlebars.jsHandlebars.js是创建客户端模板的库Handlebars支持:单次值绑定到JavaScript对象元素集合的迭代条件模板Handlebars:示例创建用所有mustache类型的列表Handlebars:示例创建用所有mustache类型的列表<h1>{{title}}</h1><ul

class="mustaches-list">{{#types}}<li><input

name="mustaches[]"id="mustache-{{.}}"type="radio"value="{{.}}"/><label

for="mustache-{{.}}">{{.}}</label></li>{{/types}}<-模板Handlebars:示例创建用所有mustache类型的列表<h1>{{title}}</h1><ul

class="mustaches-list">{{#types}}<li><input

name="mustaches[]"id="mustache-{{.}}"type="radio"value="{{.}}"/><label

for="mustache-{{.}}">{{.}}</label></li>{{/types}}<-模板JavaScript<-var

model

=

{title:

' o

mustache!',types:

['Hungarian',

'Dali','Imperial',

…]}Handlebars:示例创建用所有mustache类型的列表所有绑定都在{{}}中完成<h1>{{title}}</h1><ul

class="mustaches-list">{{#types}}<li><input

name="mustaches[]"id="mustache-{{.}}"type="radio"value="{{.}}"/><label

for="mustache-{{.}}">{{.}}</label></li>{{/types}}<-模板JavaScript<-var

model

=

{title:

' o

mustache!',types:

['Hungarian',

'Dali','Imperial',

…]}Handlebars.js模板演示KendoUI模板KendoUI模板是KendoUI框架的一部分可在kendo.core.js中找到可单独使用KendoUI模板支持:单次值绑定到JavaScript对象元素集合的迭代条件模板KindoUI模板:示例创建技术表<h1>#:

title

#</h1><table>#

for

(var

i

=

0;

i

<

technologies.length;

i+=1)

{#<tr><td><inputtype='checkbox'

id="technology-#:

i

#"

/></td><td><label

for="technology-#:

i

#">#:

technologies[i].name

#</label></td></table>var

model

=

{title:

'Technologies',technologies:[{name:'ASP.NET',field:'web'

},{name:'Node.js',field:'web'

},{name:'WPF',field:'windows

desktop'

},{name:'Android',field:'mobile'

}]};KendoUI模板

演示AngularJS模板AngularJS模板是AngularJS框架内核的一部分实际上为控制器表达视图AngularJS支持:双向数据和事件绑定到JS对象元素集合的迭代条件模板AngularJS模板:创建图像幻灯<div

id="wrapper"ng-controller="ImagesController"><divclass="slider"><strong>{{currentImage.title}}</strong><img

ng-src

=

"{{currentImage.src}}"

width=800

/><ul

class="slider-images-list"><ling-repeat="image

in

images"><img

ng-src="{{image.src}}"ng-click="changeCurrent(image)"/></li></ul></div></div>app.controller('ImagesController',

function

($scope)

{$scope.images

=

[{title:

'QA

Academy

2012/2013Graduation',src:

'imgs/9511183282_cbe735bb73_c.jpg'}

]$scope.currentImage

=

$scope.images[0];$scope.changeCurrent

=

function(image){$scope.currentImage

=

image;};});AngularJS模板

演示服务器端视图引擎服务器端视图引擎服务器端视图引擎返回准备使用的HTML到客户端(浏览器)在服务器上解析数据为HTML*Web应用,通过服务器视图引擎创建的,并非真正的单页应用大多数情况下Jade模板引擎Jade是服务器视图引擎生产HTML为结果可被解析:手动的(使用CMD/命令行)自动的,使用任务运行器自动的,使用Express之类的框架Jade比HTML更有表现力和动态性Jade模板可被解析,基于JS模型或条件使用Jade安装Jade用Node.js创建index.jade文件运行创建index.html以内容:$

npm

install

jade

-guleach

val

in[1,

2,

3,

4,

5]li=

'Item

'

+

val$

jade

index.jade<ul><li>Item

1</li><li>Item

2</li><li>Item

3</li><li>Item

4</li><li>Item

5</li></ul>使用Jade

演示Jade特点:Tag省略开始和结束甚至是尖括号ID和class以CSS选择器设置#id和.class<div

id="wrapper"><table

class="special"><tr><th>Header

1</th><th>Header

2</th></tr><tr><td>Data

1</td><td>Data

2</td></tr></table></div>#wrappertable.specialtrth

Header

1th

Header

2trtd

Data1td

Data2解析为Jade特点:AttributeAttribute特性写成'('和')'用逗号','分隔<div

id="wrapper"><header><h1

id="logo"><ahref="..."><img

src="..."/></a></h1><nav

id="main-nav"><ul><li

class="nav-item"><a

href="...">...</a></li></ul></nav></header></div>#wrapperheaderh1#logoa(href='...')img(src='…')nav#main-nav:

ulli.nav-itema(href='…')解析为Jade特点演示Jade模型Jade能够创建markup标记,使用数据模型如,给定数组项,放置其到表格中#wrapperheaderh1#logoa(href='...')=

titlenav#main-nav:

uleachiteminnavli.nav-itema(href=

item.url)=item.title<div

id="wrapper"><header><h1

id="logo"><a

href="...">Loremipsum</a></h1><nav

id="main-nav"><ul><li

class="nav-item"><a

href="#home">Home</a></li><li

class="nav-item"><a

href="#about">About</a></li></ul></nav></header></div>解析为Jade模型演示Jade中运行Jade可以包含条件、循环等HTML基于模型创建if

conditionh1.success|Fulfilled!elseh1.error|

Not

fullfilledmodel

={condition:true}model

={condition:f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论