angularjs快速入门教程(启动入口:ng-app、angular.bootstrap(element, ['模块名'...]))

分类:Javascript| 发布:佚名| 查看: | 发表时间:2014/8/7

主题:

本篇主要介绍下angular里的一些概念,并且在咱们的小应用上加上点料。。

概念(大概了解即可,代码中遇到的会有详细注释):

模板:动态模板,是动态的,直接去处理DOM的,而不是通过处理字符串模版(静态模板)

mvc:核心思想实现“数据管理-数据模型Model、应用逻辑-控制器Controller、数据表现-视图View”三者的之间的分离。view从model获取数据把数据展示到界面上,当有用户操作处理交互时,控制器controller去改变数据model,然后通知view去做相应的改变;各司其职。

双向绑定:意味着当model变化的时候,view也去改变,view改变的时候,model也会相应的发生变化,也就是MVVM的概念,VM就是view和model的枢纽所在。

scope:是一个view和控制器之间的纽带,也就是作为数据模型model的,scope负责去监听model的变化,同时scope是和html结构一样具备层次结构的,每个angular app都会有且只有一个rootScope,他可以有childScope,每个childScope会有parentScope和childScope,也就意味着是可以继承的,继承方式也是原型继承,每一个childScope继承自他的parentScope。

controller:view后的代码,在angular中,规范的是在controller中不出现任何的DOM操作,controller仅仅是去更改(创建)scope上的数据就ok了,所以在ag中跑单元测试时很容易的。

model:数据模型,与模板结合产生视图,在angular中,他是scope的一个属性,值可以是任何的JS的对象(数字 字符串 数组...)

view:就是咱们的HTML呈现,angular会便利DOM树,然后经过compile,在和scope数据结合,完整的呈献给用户。

directive:指令,可以说是angular中相当占分量的概念,可以理解为去扩展HTML元素,使其具备一定的特性或者功能,类似于组件化HTML的意思,如果说DOM操作的话,就是在这里完成的;有人说这是未来的方向还是很有道理的,未来通道polymer O(∩_∩)O

依赖注入:其他好多语言也有这个概念,这样我们就不用创建依赖关系了,angular会自动帮我们注入到调用函数的参数中。

module:模块,可以理解为某类功能特性的集合,是一个应用块,模块是可以被依赖注入的,也是配置依赖的地方。

表达式:一个普通的JS代码片段,我们可以通过$parse服务对表达式求值,除了if else switch throw while for啊这些,基本上其他的JS代码片段都可以被parse求值,此外还增加了过滤器filter的管道|语法,例如3*10|currency,详见官网。

当然,还有一些概念这里是没涉及到的,例如service啊等等,等后边用到的时候,再去看也ok。

主题:

一个能够跑起来的页面,神奇的效果,无需JS代码!

效果图:

angularjs快速入门教程

细节:

当然,这里甚至连登陆都没做,只是看到神奇的当输入用户名或者密码的时候,下面的预览区域也会有相应的更改。没有一行的JS代码!
为什么会这样,这里不多说,指的我们必须注意的一些细节:
angularjs快速入门教程1、启动方式:

一个angular应用是跑起来的“入口”,有两方式:

(1)在元素上添加ng-app指令(暂时无需关心什么意思);ng-app可以有属性值(ng-app="app"),这样的话就需要咱们去写一个名为app的module了,后续详解。

(2)不去指定ng-app,通过JS代码执行:angular.bootstrap(element, ['模块名'...]),一样也是可以启动的(比如:angular.bootstrap(document, [myModule.name]);)

2、大概过程

由于在这里我们只是加了一个ng-app,但是没指定名字,所以angular默认会帮助我们创建一个。。
input元素上的ng-model指令,指定的名字其实是挂在一个叫scope(暂时不去关心什么东东)的对象上的,也就是scope.username=输入框的值;

然后在下面的预览区域,用了{{}},也叫插值表达式,里面的值是scope上的一个属性username,渲染出来的结果就是input的value值,这里就是angular神奇的地方之一,他实现了双向绑定,所以当咱们更改input的值得时候,scope.username就会发生改变,然后在插值表达式的地方就会相应的绑定,也就是说view绑定了model,model绑定了view,不管是view还是model更改了,相对应的都会一起更改。

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/javascript/1563.html