anglarjs概述

anglarjs 是一个MVC框架,是开发单页面应用的上上之选,它不是一个功能库,是一个开发动态页面的html框架。专注于扩展html功能,提供动态数据绑定,并能够与jquery合作融洽。

要定义一个AngularJS应用,我们先得定义一个AngularJS模块(angular.module)。所谓AngularJS模块,其实就是一系列函数的集合,当应用被启动时,这些函数就会被执行。

anglarjs的主要组成部分,以及他们是如何运作的
启动(startup) - 展示“hello world!”
执行期(runtime) - AngularJS 执行期概览
作用域(scope) - 视图和控制器的集合区
控制器(controller) - 应用的行为
模型(model) - 应用的数据
视图(view) - 用户能看到的
指令(directives) - 扩展HTML语法
过滤器(filters) - 数据本地化
注入器(injector) - 聚合你的应用
模块(module) - 配置注入器
$ - AngularJS的命名空间(namespace)

他们是这样协同工作的:
1. 浏览器载入HTML,然后把它解析成DOM
2. 浏览器载入angular.js脚本
3. angularjs等到DOMContentLoaded事件触发。
4. anglarjs寻找ng-app指令,这个指令指示了应用的边界
5. 使用ng-app中制定的模块来配置注入器($injector)
6. 注入器($injector)是用来创建"编译服务($compile service)"和"根作用域($rootScope)"的。

scope作用域是用来检测模型的改变和为表达式提供执行上下文的,它是分层组织起来的,并且层级关系是紧跟着DOM的结构的。
视图背后的控制代码就是控制器,它的主要工作内容是构造模型,并把模型和回调方法一起发送到视图,视图可以看做是作用域在模板上的投影,而作用域是一个中间地带,它把模型整理好传递给视图,把浏览器事件传递给控制器。控制器和模型的分离非常重要。

控制器是由javascript写的,Javascript是命令式的,命令式的语言适合用来编写应用的行为。控制器不应该包含任何关于渲染代码(DOM引用或者片段)。
视图模板是用HTML写的,HTML是声明式的,声明式的语言适合用来编写UI,视图不应该包含任何行为。
因为控制器和视图没有直接的调用关系,所以可以多个视图对应同一个控制器。

模型就是用来和模板结合生成视图的数据。模型必须在作用域中时可以被引用,这样才能被渲染成视图。
和其它框架不一样的是,anglarjs对模型本身没有任何限制和要求,它就是原生的JavaScript对象。
视图,就是用户所看见的,视图的生命周期由作为一个模板开始,它将和模型合并并最终渲染到浏览器的DOM中。
指令: 一个指令就是一种“由某个属性,元素名称,css类名出现而导致的行为,或者说是DOM的变化”,指令能让以一种声明式的方法来扩张HTML标示能力。
过滤器: 它扮演者数据翻译的角色,一般主要用子啊数据需要格式化成本地格式的时候,它参照了UNIX过滤的规则,
并且也实现了"|"管道语法。
模块和注入器: 每个angularjs应用都有一个唯一的注入器,注入器提供一个通过名字查找对象实例的方法,它将所有对象缓存在内部,所以如果重复调用同一名称的对象,每次调用都会得到同一个实例。如果调用的对象不存在,那么注入器就睡让实例工厂创建一个新的实例。一个模块就是一种配置注入器实例工厂的方式,也被称为“提供者(provider)”

模块: 大部分应用都有一个主方法用来实例化,组织,启动应用。angularjs应用没有主方法,而是使用模块来声明应用应该如何启动。

结合目前工作中的使用情况,对于大型应用,可以拆分为以下几个模块:
一个服务模块,用来做服务的声明。
一个指令模块,用来做指令的声明。
一个过滤器模块,用力啊做过滤器声明。
一个依赖以上模块的应用级模块,它包含初始化代码。

上一篇:qt qml 刮刮卡效果


下一篇:Gson简要使用笔记