首页 > Web开发 > 详细

angularJs为什么在近几年风头一时无二?

时间:2015-11-27 19:48:24      阅读:334      评论:0      收藏:0      [点我收藏+]

AngularJs在近几年一致如火如荼,久经沙场而常胜不衰。如果某位同学还没有接触过Angular,那你很可能会错过阐释“Javascript时世界上最灵活的语言”的又一个深刻的例子了。说了这么多,您有没有对Angular产生了一丝兴趣呢?(本人前端新手一枚,由于最近刚开始写博客,想到哪就写到哪,逻辑可能不是按常规的来,请各位看官见谅。!第一次接触angualr,如果不能理解或者不能赞同的,可跳过此篇直接进入下一篇内容篇。而且后面的博客都是基于angular1.0版本的描述。)

那么,Angualr到底有什么魅力或者说区别去其他市面上框架的的地方呢?

给我印象最深刻的当属angular的申明式语法!angualr使用HTML申明式语法定义交互接口(app‘s user interface).HTML是一门申明式语言,比起在Javascript中定义接口它看起来更直接更明了。大家都知道,HTML是展现app最直观的入口,一些特殊的自定义的html标签的属性决定哪个controller被引用。这些自定义的属性决定‘what’被加载,而不是‘how’加载。这种声明式接口在很大程度上简化了开发步骤,以这种你看见什么就是什么的方式,很直白。

给我印象深刻第二个就是它的数据模型(Data Models)。Angular的数据模型其实还是一个普通的javascript对象,也就是说创建一个angualr data model ,并不需要额外的构造函数Constructor(继承javascript中的Object()函数就行)。也就是说,你可以随意去添加或者改变或者循环model的属性,这样你的代码会看起来和原始javascript写法逻辑一致。区别于其他的是data models,Angular数据模型更接近controller和view这两个层。为了区别于其他的数据模型,Angular称之为scopes。而scopes本身是没有初始化任何数据的,只有通过在controler中在逻辑需求中填充数据。只要在angular中controller中控制的scope中的数据,会自动绑定到view中。

第三个,就是Angular极具特色的directives。想象一下,当HTML中拥有海量丰富元素,例如<generation></generation>,<grid></grid>。这样我们就不用去操作DOM来把它伪装成类似<generation></generation>,<grid></grid>功能的标签。当定义了这些属性或者元素后,就可以直接讲这些属性赋值给html标签,或者把元素直接当成标签应用。那么Angualr是如何定义这些标签或者元素的呢?通过把DOM操作这部分代码放在directives中,我们可以把它从MVC中分离。这样,我们MVC框架就只关心是否跟新视图中的新数据。

第四个,就是controllers,它所作的唯一工作就是操作scope。这里面主要是一些处理业务逻辑的代码。既然controller如此简单,那么所有的很复杂的逻辑代码写在哪里呢?当然就是services,顾名思义。services不会被app所载入,但是简单的提供了一些对外的接口,那些你想暴露的接口。大部分时间它会同步服务端来维护离线数据存储和暴露一些方法来推送数据到后端,或者也可以用来

创建一个共享服务资源,可以允许多个控制器来分享这些资源。

先写到这里吧。晚上继续更。

 

angularJs为什么在近几年风头一时无二?

原文:http://www.cnblogs.com/brancepeng/p/5001408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!