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 相关文章推荐
JQuery 无废话系列教程(一) jquery入门 [推荐]
Jun 23 Javascript
javascript 数组排序函数
Aug 20 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
Apr 02 Javascript
JavaScript中eval()函数用法详解
Dec 14 Javascript
深入浅析Extjs中store分组功能的使用方法
Apr 20 Javascript
js分页之前端代码实现和请求处理
Aug 04 Javascript
简述Angular 5 快速入门
Nov 04 Javascript
Angular5.1新功能分享
Dec 21 Javascript
详解Nuxt.js部署及踩过的坑
Aug 07 Javascript
vue实现的请求服务器端API接口示例
May 25 Javascript
Node.js之删除文件夹(含递归删除)代码实例
Sep 09 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框架排名
2013/07/04 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
详解python单例模式与metaclass
2016/01/15 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
python正则表达式面试题解答
2020/04/28 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
python程序输出无内容的解决方式
2020/04/09 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
《九寨沟》教学反思
2014/04/08 职场文书
商场消防安全责任书
2014/07/29 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python