AngularJS 最常用的功能汇总


Posted in Javascript onFebruary 17, 2016

AngularJS通过为开发者呈现一个更高层次的抽象来简化应用的开发。如同其他的抽象技术一样,这也会损失一部分灵活性。换句话说,并不是所有的应用都适合用AngularJS来做。AngularJS主要考虑的是构建CRUD应用。幸运的是,至少90%的WEB应用都是CRUD应用。但是要了解什么适合用AngularJS构建,就得了解什么不适合用AngularJS构建。

如游戏,图形界面编辑器,这种DOM操作很频繁也很复杂的应用,和CRUD应用就有很大的不同,它们不适合用AngularJS来构建。像这种情况用一些更轻量、简单的技术如jQuery可能会更好。

第一 迭代输出之ng-repeat标签

ng-repeat让table ul ol等标签和js里的数组完美结合

<ul>
<li ng-repeat="person in persons">
{{person.name}} is {{person.age}} years old.
</li>
</ul>

你甚至可以指定输出的顺序:

<li ng-repeat="person in persons | orderBy:'name'">

第二 动态绑定之ng-model标签

任何有用户输入,只要是有值的html标签,都可以动态绑定js中的变量,而且是动态绑定。

<input type="text" ng-model='password'>

对于绑定的变量,你可以使用{{}} 直接引用

<span>you input password is {{password}}</span>

如果你熟悉fiter,你可以很容易的按你的需要格式输出

<span>{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}</span>

第三 绑定点击事件之ng-click事件

使用ng-click你可以很容易的为一个标签绑定点击事件。

<button ng-click="pressMe()"/>

当然前提是你要在$scope域中定义的自己的pressMe方法。

和传统的onclick方法不同,你甚至可以为ng-click方法传递一个对象,就像这样:

<ul>
<li ng-repeat="person in persons">
<button ng-click="printf(person)"/>
</li>
</ul>

当然还有ng-dblclick标签

第四 分支语句之ng-switch on、ng-if/ng-show/ng-hide/ng-disabled标签

分支语句让你在界面上都可以写逻辑判断。

<ul>
<li ng-repeat="person in persons">
<span ng-switch on="person.sex">
<span ng-switch-when="1">you are a boy</span>
<span ng-switch-when="2">you are a girl</span>
</span>
<span ng-if="person.sex==1">you may be a father</span>
<span ng-show="person.sex==2">you may be a mother</span>
<span>
please input your baby's name:<input type="text" ng-disabled="!person.hasBaby"/>
</span>
<span>
</li>
</ul>

第五 校验语法之ng-trim ng-minlength ng-maxlength required ng-pattern 等标签

表单中的输入框,你可以使用上面的标签来实现对用户输入的校验。
从字面意思上你已经知道了它们的意思。

<form name="yourForm">
<input type="text" name="inputText" required ng-trim="true" ng-model="userNum" ng-pattern="/^[0-9]*[1-9][0-9]*$/" ng-maxlength="6" maxlength="6"/>
</form>

你可以通过 $scope.yourForm.inputText.$error.required 来判断输入框是否为空

你可以通过 $scope.yourForm.inputText.$invalid 来判断输入的内容是否满足ng-pattern,ng-maxlength,maxlength

你通过$scope.userNum获得的输入内容是去掉前后空白的,因为ng-trim的存在。

第六 下拉框之ng-options标签

ng-options是为下拉框专门打造的标签。

<select ng-model="yourSelected" ng-options="person.id as person.name in persons"></select>

下拉框中显示的是person.name,当你选中其中一个的时候,你可以通过yourSelected得到你选中的person.id.

第七 控制css之ng-style标签

ng-style帮你轻松控制你的css属性

<span ng-style="myColor">your color</span>

你可以通过给myColor赋值的形式来改变你想要的效果,就像这样:

$scope.myColor={color:'blue'};
$scope.myColor={cursor: 'pointer',color:'blue'};

第八 异步请求之$http对象。

AngularJS 提供了一个类似jquery的$.ajax的对象,用于异步请求。
在AngularJS中对异步操作是推崇至极的,所以$http的操作都是异步的不像jquery.ajax里还提供了async参数。

$http({method : 'POST',params : { id:123}, data:{name:'john',age:27}, url : "/mypath"})
.success(function(response, status, headers, config){
//do anything what you want;
})
.error(function(response, status, headers, config){
//do anything what you want;
});

如果你是POST请求,params里的数据会帮你拼到url后面,data里的数据会放到请求体中。

以上给大家分享了八种AngularJS 最常用的功能,希望对大家有所帮助!

Javascript 相关文章推荐
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 Javascript
JavaScript字符串String和Array操作的有趣方法
Dec 18 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
Aug 16 Javascript
jQuery功能函数详解
Feb 01 Javascript
jQuery实现新消息在网页标题闪烁提示
Jun 23 Javascript
基于jquery实现的仿优酷图片轮播特效代码
Jan 13 Javascript
Angularjs 滚动加载更多数据
Mar 17 Javascript
js在ie下打开对话窗口的方法小结
Oct 24 Javascript
使用 Vue.js 仿百度搜索框的实例代码
May 09 Javascript
关于Vue.nextTick()的正确使用方法浅析
Aug 25 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
Sep 15 Javascript
Vuex模块化应用实践示例
Feb 03 Javascript
AngularJS身份验证的方法
Feb 17 #Javascript
基于AngularJS+HTML+Groovy实现登录功能
Feb 17 #Javascript
实例讲解jquery中mouseleave和mouseout的区别
Feb 17 #Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
Feb 17 #Javascript
Bootstrap中CSS的使用方法
Feb 17 #Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 #Javascript
基于javascript简单实现对身份证校验
Jan 25 #Javascript
You might like
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
PHP实现RTX发送消息提醒的实例代码
2017/01/03 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python常用知识梳理(必看篇)
2017/03/23 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
Python中psutil的介绍与用法
2019/05/02 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
2014年教师业务学习材料
2014/05/12 职场文书
新农村建设典型材料
2014/05/31 职场文书
欢迎领导检查标语
2014/06/27 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
《鲸》教学反思
2016/02/23 职场文书