首页 > 代码库 > Angular
Angular
AngularJS是用JS写的客户端 MVC 框架,它运行在浏览器中,并极大的帮助我们书写现代的、单页的、AJAX风格的web App。这是一个通用的框架,但当你用来开发CRUD类型的web app时更能显现出它的强大之处。
在说明AngularJS到底是什么之前 先看个小例子 一如既往的hello world~
<!doctype html> <html> <head> <script src=http://www.mamicode.com/"https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.js">>首先是在script标签中引入AngularJS文件 这里是用的是官网给出的CDN
body 中 ng-app用于启动AngularJS应用,ng-init则在模板初始化之前渲染模型
{{name}} 部分主要是使用了ng-init的值作为渲染素材
其中 可以抽象出一些重要特性:
自定义的 HTML 标签和属性可以给本来是静态的 HTML 文档增添动态行为。
两个花括号{{expression}}是一个用来输出模型值的表达式的定界符
所有的可以被框架所理解和解析的特殊的 HTML 标签和属性都是指令
AngularJS最厉害的功能莫过于数据的双向绑定了
身为业余前端 一直很苦恼怎么把后端数据绑定到前端展示上去
AngularJS简直就是梦幻一样的存在 看例子
<!doctype html> <html> <head> <script src=http://www.mamicode.com/"https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.js">>input标签中有一个ng-model 修改一下输入框中的文字 对 你看及了是吧
文字在同步更新 而你并没有刷新页面 AngularJS检查到模型的改变&重绘DOM 这就是数据绑定
目前我们所见的hello-world程序并不是分层的 数据初始化,逻辑,视图均在一个文件中完成
而AngularJS宣称是基于MVC模型(模型-视图-控制器)
不过 AngularJS提供了一些不同的构建方式,可以正确地构建更加复杂的应用
<!doctype html> <html> <head> <script src=http://www.mamicode.com/"https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.js">>这段程序和上面的程序功能上没有区别 但是移除了ng-init 添加了ng-controller并绑定了一个JS函数到scope
AngularJS中的scope对象在这里就是要将 域模型 暴露给视图
只需把属性设置给 scope 实例,就可以在模板渲染时得到这个值
scope也可以针对特定的视图来扩展数据和特定的功能
控制器的首要任务就是初始化scope对象 控制器都是普通的JS函数
提供模型初始化的值 扩展scope的UI行为
AngularJS中的模型也是普通JS对象