什么是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
1. **基本概念**:博弈论的基本元素包括参与者(玩家)、策略集、支付函数和博弈结构。每个参与者都有自己的目标,通过选择不同的策略来追求最大化利益。 2. **零和博弈与非零和博弈**:零和博弈中,一方的收益必然...
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程...
论文研究-不确定性下多目标博弈中弱Pareto-NS均衡的存在性.pdf, 在已知不确定参数变化范围的假设下, 研究了多目标博弈中弱Pareto-NS均衡点的存在性问题. 首先结合非合作...
1. **纳什均衡**:纳什均衡是指在给定其他参与者策略不变的情况下,任何参与者都无法通过改变自己的策略来获得更好的结果。这种策略组合由所有参与者最优策略组成,一旦形成,没有任何参与者有动机单方面改变策略。 ...
哈佛大学的博弈论讲义是这个领域的权威资料之一,深受学者和学生们的喜爱。本讲义深入浅出地介绍了博弈论的基本概念、理论与应用,帮助读者理解在竞争与合作中的决策制定。 首先,我们要理解博弈论的核心概念——...
1. **完全信息静态博弈** - 这是博弈论的基础,主要探讨在所有参与者都知道所有信息的情况下,如何达到纳什均衡,即每个参与者在考虑其他人的策略后,无法通过改变自己的策略来提高收益。 2. **完全信息动态博弈** ...
微观经济学讲义-第13章博弈论
七所大学的博弈论讲义,包括哈佛大学.卡内基梅隆大学.芝加哥大学.加利福尼亚大学(圣. 迭戈校区).加利福尼亚
本讲义详细介绍了非合作博弈理论和信息经济学的相关概念。 首先,讲义涵盖了非合作博弈理论的基础,包括完全信息静态博弈。在完全信息静态博弈中,所有参与者都了解游戏的所有规则、支付矩阵和对手的策略。纳什均衡...
1. 分布式水下传感器节点状态变量描述模型:该模型用于描述水下传感器节点的状态变量,包括节点的能耗、网络拓扑结构、节点之间的交互等信息。 2. 多目标交互、协同、决策的UWSNs拓扑控制优化问题:该问题是将节点...
非合作博弈理论是博弈论的基础,其中完全信息静态博弈是研究所有参与者都了解游戏规则和所有可能选择的情况,纳什均衡是这类博弈的关键概念,即每个参与者在考虑其他参与者策略的情况下,选择最优策略,形成一种稳定...
讲义第三章详细讲解了子博弈精炼纳什均衡,这是一种动态博弈的解概念,要求均衡策略不仅要在初始阶段是最佳的,而且在任何可能的子博弈中也必须是最优的。以房地产开发项目的例子来说明,开发商A和B在面对不确定市场...
计算博弈第二讲-V61 计算博弈是自动化研究所 University of Chinese of Academy of Sciences 的一门专业普及课,旨在让学生理解博弈的基本概念、方法和应用。第二讲的主要内容是博弈表示方法、常见博弈类型和博弈的...
2019年2季度大类资产配置报告:从基本面博弈转向资金面博弈-华泰证券-20190424.pdf
人机博弈。PDF中文版。。。。。。。。。。。。。。。。。。。。。。。。。
在本讲义中,我们将探讨非合作博弈理论和信息经济学的相关概念。 首先,非合作博弈理论是博弈论的核心,主要关注参与者在没有共同利益或协议约束下的决策过程。在完全信息静态博弈中,所有参与者都掌握所有相关信息...
本讲义主要涵盖了非合作博弈理论和信息经济学的核心概念。 首先,非合作博弈理论是博弈论的基础,它描述了两个或多个独立决策者之间的互动,这些决策者无法通过正式协议来协调行动。在完全信息静态博弈中,所有参与...
博弈是什么意思-博弈之道须正矣.docx