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 相关文章推荐
比较简单的一个符合web标准的JS调用flash方法
Nov 29 Javascript
jQuery 事件队列调整方法
Sep 18 Javascript
防止浏览器记住用户名及密码的简单实用方法
Apr 22 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
Oct 25 Javascript
javascript实现在指定元素中垂直水平居中
Sep 13 Javascript
实例代码详解jquery.slides.js
Nov 16 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
Feb 19 Javascript
vuex 项目结构目录及一些简单配置介绍
Apr 08 Javascript
通过一次报错详细谈谈Point事件
May 17 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
Sep 17 Javascript
javascript function(函数类型)使用与注意事项小结
Jun 10 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 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使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
jQuery EasyUI API 中文文档 - EasyLoader 加载器
2011/09/29 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
python中 chr unichr ord函数的实例详解
2017/08/06 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
基于Python实现扑克牌面试题
2019/12/11 Python
django model object序列化实例
2020/03/13 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
廉洁教育学习材料
2014/05/19 职场文书
员工团队活动方案
2014/08/28 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
房租涨价通知
2015/04/23 职场文书
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android