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 call和apply方法
Nov 24 Javascript
javascript Xml增删改查(IE下)操作实现代码
Jan 30 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
轮播图组件js代码
Aug 08 Javascript
基于javascript实现按圆形排列DIV元素(三)
Dec 02 Javascript
详解Angular路由 ng-route和ui-router的区别
May 22 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 Javascript
Vue.js 踩坑记之双向绑定
May 03 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
Aug 10 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 Javascript
vue自定义指令和动态路由实现权限控制
Aug 28 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 Ubb代码编辑器函数代码
2012/07/05 PHP
php实现图片添加水印功能
2014/02/13 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
JavaScript中的&quot;=、==、===&quot;区别讲解
2019/01/22 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
个人实用简单的自我评价
2013/10/19 职场文书
QA工程师岗位职责
2013/11/20 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
个人授权委托书样本
2014/09/13 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
2014年法院工作总结
2014/11/24 职场文书
撤诉申请书法院范本
2015/05/18 职场文书