AngularJS入门教程之Helloworld示例


Posted in Javascript onDecember 25, 2016

本文实例讲述了AngularJS入门教程之Helloworld示例。分享给大家供大家参考,具体如下:

什么是AngularJs?

angularjs是一个为动态WEB应用设计的结构框架。它能让你使用HTML作为模板语言,通过扩展HTML的语法,让你能更清楚、简洁地构建你的应用组件。它的创新点在于,利用数据绑定和依赖注入,它使你不用再写大量的代码了。这些全都通过浏览器端的javascript实现,这也使得它能够完美地和任何服务器技术结合。

AngularJS简单的Helloworld例子:

<!DOCTYPE HTML>
<!-- 告诉AngularJs引擎从这里开始是ng-app管理 -->
<html lang="en-US" ng-app>
<head>
  <meta charset="UTF-8">
  <title>AngularJS例子</title>
</head>
<body>
  <!-- ng-model数据模型 -->
  <input type="text" ng-model='name' placeholder="yourname" />
  <!-- {{}}angular表达式 -->
  <h1>Hello {{name}}</h1>
  <script type="text/javascript" src='http://cdn.staticfile.org/angular.js/1.3.0-beta.13/angular.min.js'></script>
</body>
</html>

这个例子其实展示了angularjs的数据双向绑定,

AngularJS入门教程之Helloworld示例

AngularJS入门教程之Helloworld示例

左边为数据单向绑定图解,通常是要你管jquery,backbone这类框架,右边为angularjs数据双向绑定。

模型 视图 控制器(MVC)

MVC背后的核心概念就是,你在你的代码之间明确分离管理数据(模型),应用程序逻辑(控制器),并将数据给用户(视图)。

视图从模型中获取数据展示给用户。当用户通过点击或者输入和应用程序进行交互时,控制器通过改变模型中的数据响应。最终,模型层通知视图层,已经发生改变,一边更新显示。

在Angluar应用中,视图层就是DOM,控制器就是Javascript类,模型数据存储在对象属性中。

angularjs数据绑定

像jquery库这种扩展到客户端的模式,让我们遵循相似的风格,但由于更新的能力,单独地DOM的部分,而不是更新整个页面。这里,我们合并HTML字符串和数据,然后通过元素上设置innerHTML将结构插入到我们想要的Dom中。

这一切都运行的相当好,但是你想将新数据插入到界面,或者改变基于用户输入的数据时,你需要做很多又不是价值不高的工作,来确保同时在界面和javascript属性中获取的数据正常的状态。

但是,倘若我们有什么东西把这些工作都为我们做好了,同时不需要写代码?倘若我能仅仅声明界面的某一部分映射到javascript的属性,让他们自动的同步?这种编程方式叫做数据绑定。我们在angular中包括这种功能,因为当编写视图和模型时,使用mvc来消除代码那是非常棒的。移动数据从一个地方的绝大部分自动发生。

注:最上面的例子就能体现

依赖注入(DI)

$scope对象把数据绑定自动的传递给了我们。我们没有必要通过调用任何函数来创建它。我们只是要求把它放到HelloController构造函数中。

在后续学习中,我们发现,scope并不是我们唯一需要的。如果我们需要数据绑定它到用户浏览器指定的URL地址中,我们需要在构造函数中,添加一个scope并不是我们唯一需要的。如果我们需要数据绑定它到用户浏览器指定的URL地址中,我们需要在构造函数中,添加一个location对象,就这样:

function HelloController($scope,$location){
  $scope.greeting={text:'Hello'}
  //使用$location 在这
}

通过Angular的依赖注入系统,我们可以得到这种效果。依赖注入允许我们遵循一种开发风格,这种开发风格中,不是创建依赖,我们的类仅仅添加他们需要的。

这个遵循了一个叫迪米特法则的设计模式,也被称作最少知识法则。由于HelloController的任务是建立greeting模型的初始值,这种模式就是说,它不需要担心像$scope如何创建以及在那里找到它。

angularJs指令

angular最优秀部分之一是你可以把你写的模板当成HTML。因为在框架的核心层,我们已经包括了一个强大的DOM转换引擎,可以让你扩展HTML语法,因此你才可以这样做。

我们已经在模板文件中看到了多个新的属性,这些并不是HTML规范的一部分。示例中包括两个大括号是用来数据绑定的,ng-controller是用来指定那个控制器来服务那个师徒,ng-model将一个输入框绑定到模型部分。我们称这些叫HTML扩展指令。

angular带有很多标识符,帮助你为你的应用程序定义视图。这些标识符可以定义我们常见的视图作为模板。它们可以说明应用程序如何工作的或者创建可重复使用的组件。

同时不局限于Angular自带的标识符。你可以写你自己的来扩展HTML模板,做任何你想做的事。

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
用JavaScript脚本实现Web页面信息交互
Dec 21 Javascript
jquery 将disabled的元素置为enabled的三种方法
Jul 25 Javascript
一个简单的JavaScript 日期计算算法
Sep 11 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
May 07 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
Dec 11 Javascript
jQuery获取iframe的document对象的方法
Oct 10 Javascript
Bootstrap模态框插入视频的实现代码
Jun 25 Javascript
vue.js实现的绑定class操作示例
Jul 06 Javascript
vue.js实现带日期星期的数字时钟功能示例
Aug 28 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
Oct 28 Javascript
完美解决vue 中多个echarts图表自适应的问题
Jul 19 Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 #Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 #Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 #Javascript
使用jsonp实现跨域获取数据实例讲解
Dec 25 #Javascript
JavaScript中数据类型转换总结
Dec 25 #Javascript
javascript实现用户点击数量统计
Dec 25 #Javascript
jQuery扩展+xml实现表单验证功能的方法
Dec 25 #Javascript
You might like
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python实现删除文件与目录的方法
2014/11/10 Python
简单解决Python文件中文编码问题
2015/11/22 Python
基于Python os模块常用命令介绍
2017/11/03 Python
python最长回文串算法
2018/06/04 Python
Python3中列表list合并的四种方法
2019/04/19 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
Flask-WTF表单的使用方法
2019/07/12 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
bonprix荷兰网上商店:便宜的服装、鞋子和家居用品
2020/07/04 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
2014迎新年晚会策划方案
2014/02/23 职场文书
英文请假条
2014/04/11 职场文书
教师求职自荐书
2014/06/14 职场文书
2014年检察院个人工作总结
2014/12/09 职场文书
教师节随笔
2015/08/15 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python
react中的DOM操作实现
2021/06/30 Javascript
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS