什么是AngularJS ?
AngularJS是一款非常优秀的前端MVVM(Model-View-ViewModel)框架,它强大的双向数据绑定(two-way data binding)和依赖注入(dependency injection), 使得前端代码结构更具层次化和模块化,极大减少了前端代码量。 通过AngularJS可以扩展HTML的语法,让页面显得更加简洁。 由于国内访问Google Site受限,所以广大的爱好者可能无法访问到最好的AngularJS资源,我们将在稍后的章节中结合大量的官方代码片段对AngularJS进行详解,尽显其强大之处。
AngularJS使用了不同的方法,它尝试去补足HTML本身在构建应用方面的缺陷。AngularJS通过使用我们称为标识符(directives)的结构,让浏览器能够识别新的语法。
使用双大括号{{}}语法进行数据绑定
使用DOM控制结构实现迭代或者隐藏DOM片段
支持表单和表单验证
逻辑代码和DOM元素关联
构建可重用的页面组件
AngularJS的使用场景
AngularJS呈现给开发者更高层次的抽象简化了应用程序的开发。但这种抽象牺牲了一些灵活性。并不是所有的Web应用都适合采用AngularJS开发。
AngularJS主要适用于CRUD(增、删、改、查)类的应用,基于其强大的数据绑定,模版指令定制,路由,表单验证,组建重用以及依赖注入。此外Angular还提供了丰富的自动化测试工具。
AngularJS不适合开发游戏和DOM操作过于频繁的页面应用,对于这些类型的应用应考虑更底层的库或者框架比如jQuery.
AngularJS的禅学
AngularJS推崇在构建UI和组件时使用声明式的代码风格:
将DOM操作和应用逻辑解耦,提高代码的可测试性
测试代码和写代码同样重要, 测试的难度很大程度上取决于代码的结构设计
将前后端的代码解耦,使得前后端并行开发
将复杂的问题分而治之
AngularJS主要从以下几点帮我们简化了开发:
减少了大量回调及事件注册的代码, 让代码层次更加清晰
用声明式的代码描述UI的状态和行为,不用再写大量的JS代码操作DOM
AngularJS对Model与UI的绑定以及AJAX提供了良好的封装,让我们更专注与整个应用的流程
AngularJS的依赖注入机制减少了初始化代码
让我们从一个简单例子开始
1. 从本文附件中下载AngularJS框架代码
2. 使用你喜爱的文本编辑器,创建html文件, 加入如下内容:
<!doctype html> <html ng-app> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script> </head> <body> <div> <label>Name:</label> <input type="text" ng-model="yourName" placeholder="Enter a name here"> <hr> <h1>Hello {{yourName}}!</h1> </div> </body> </html>
注意: 请在script里面引入你所用的angularjs的正确地址。
3. 在浏览器中运行以上代码,结果如图所示。
现在让我们分析一下代码。 首先值得注意的是在html标签里面的“ng-app”属性,这是AngularJS内置的一个标记(directives), 但页面加载时,AngularJS会自动识别相应的标记,对页面进行预处理(compile), “ng-app”告诉AngularJS这是一个AngularJS的应用,接下来在<input>的标签中有一个ng-model="yourName",AngularJS自动给改input标签绑定一个model属性"yourName", 该控件的value会自动赋给绑定的属性,最后看到的是一个模板<h1>Hello {{yourName}}!</h1>的, “{{}}”是AngularJS表达式(expression),可绑定前面<input>说关联的model属性,这样在input中输入不同的文本, 就可以在Hello语句中实时看到更新的值了。 这正是数据绑定的强大之处, 不需要再写额外的js代码来注册监听事件了。
在此我们初步领略了AngularJS的强大。我们将在下个章节中,详细介绍AngularJS的一些核心概念。
相关推荐
NULL 博文链接:https://boyitech.iteye.com/blog/2167272
博弈论专题---------------博弈论
博弈论与信息经济学讲义9-1.pptx
博弈论与信息经济学讲义09-1.pptx
论文研究-不确定性下多目标博弈中弱Pareto-NS均衡的存在性.pdf, 在已知不确定参数变化范围的假设下, 研究了多目标博弈中弱Pareto-NS均衡点的存在性问题. 首先结合非合作...
耶鲁大学公开课博弈论讲义..........................................................
博弈论与信息经济学讲义06-5PPT课件.pptx
博弈论与信息经济学讲义06-4PPT课件.pptx
博弈论与信息经济学讲义06-5学习教案.pptx
博弈论与信息经济学讲义06-4学习教案.pptx
外来务工人员收入分配地位成因的博弈分析----一个扩展的讨价还价模型.docx
博弈论与信息经济学讲义06-5PPT学习教案.pptx
博弈论与信息经济学讲义06-4PPT学习教案.pptx
博弈博客BlogYi.Net-2.0-Source.zip
微观经济学讲义-第13章博弈论
中国人工智能系列白皮书2017 - 机器博弈-智能驾驶-智能交通
七所大学的博弈论讲义,包括哈佛大学.卡内基梅隆大学.芝加哥大学.加利福尼亚大学(圣. 迭戈校区).加利福尼亚
博弈论课件4-重复博弈.pdf
有关博弈论的课件--很经典啊~~~建议喜欢的同学看看
[数学]博弈论-Game-Theory.pdf