前言

今天来和大家学习一下AngularJS……
AngularJS 通过新的属性和表达式扩展了 HTML。
AngularJS 可以构建一个单一页面应用程序。
AngularJS 学习起来非常简单。
一、AngularJS指令与表达式
【AngularJS常用指令】
1、ng-app:声明Angular所管辖的区域,一般写在body或HTML上,原则上一个页面只有一个。
2、ng-model:把元素值(比如输入域的值)绑定到应用程序的变量中。
eg:<input type="text" ng-model="name"/>
3、ng-bind:把应用程序变量中的数据绑定到HTML视图中,可用表达式替代。
eg:<div id="div1" ng-bind="name">
</div>等效于<div id="div1" >{{name}}</div>
4、ng-init:初始化 AngularJS应用程序变量。
eg:<body data-ng-app="" ng-init="name=123">
5、表达式:{{}}绑定表达式,可以包含文字,运算符和变量。
但是表达式在网页加载瞬间会看到{{}},所以可以用ng-bind=""替代。
eg:{{ 5 + "" + 5 + ',Angular' }}
【基本概念】
指令:AngularJS中,通过扩展HTML的属性提供功能。
所以,ng-开头的新属性,被我们成为指令。
二、AngularJS中的MVC中的作用域
【MVC三层架构】
1、model(模型):
应用程序中用于处理数据的部分。(保存或修改数据到数据库、变量等)。AngularJS中的Model特指的是:数据。
View(视图):用户看到的用于显示数据的页面。
Controller(控制器):应用程序中处理用户交互的部分。负责从视图读取数据,控制用户输入,并向模型发送数据。
2、工作原理:
用户从视图层发出请求,controller接收到请求后转发给对应的model处理,model处理完成后返回结果给controller,并在View层反馈给用户.
3、创建一个Angular模块,即ng-app所绑定的部分 ,需传递两个参数:
①模块名称:即ng-app所需要绑定的名称,ng-app="myApp"
②数组:需要注入的模块名称,不需要可为空。
eg:var app= angular.module("myApp",[]);
在Angular模块上,创建一个控制器Controller,需要传递两个参数。
①Controller名称,即ng-controller需要绑定的名称。ng-controller="myCtrl"
②Controllerd的构造函数:构造函数可以传入多个参数,包括$scope/$rootScope以及各种系统内置对象;
【AngularJS中的作用域】
①$scope:局部作用域,声明在$scope上的属性和方法,只能在当前的Controller中使用
②$rootScope:根作用域,声明在$rootScope上的属性和方法,
可以在ng-app所包含的任何区域使用(无论是否同Controller,或是否在Controller包含范围中)
>>>若没有使用$scope声明变量,而直接在HTML中使用ng-model绑定的变量作用域为:
1、如果ng-model在某个ng-controller中,则此变量会默认绑定到当前Controller的$scope上;
2、如果ng-model没有在任何一个ng-controller中,此变量会绑定到$rootScope上。
三、AngularJS过滤器
AngularJS中,过滤器可以使用一个管道字符(|)添加到表达式和指令中。
>>>系统内置过滤器:
currency:格式化数字为货币格式。
filter:从数组项中选择一个子集。
lowercase:格式化字符串为小写。
orderBy:根据某个表达式排列数组。
uppercase:格式化字符串为大写。
eg:
<p>{{"aBcDeF"|uppercase}}</p>
<p>{{"aBcDeF"|lowercase}}</p>
<p>{{123456|currency}}</p>
【自定义过滤器】
.filter('reverse',function(){ //可以注入依赖
return function(text){
if(!angular.isString(text)){
return "您输入的不是字符串!"
}else{
return text.split("").reverse().join("");
}
}
})
四、AngularJS中的 http && select && DOM操作
一、AngularJS中的http
$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。
二、AngularJS中的select
①使用数组作为数据源,其中,x表示数组的每一项。
默认会将x直接绑定到option的value中,而option显示的内容,由前面的x for...决定。
eg:
<section ng-model= "name" ng-options="x.site for x in sites"></section>
②使用对象作为数据源,其中,(x,y)表示键值对,x为键,y为值。
默认会将值y绑定到option的value中,而option显示的内容,由前面的x for...决定。
eg:
<section ng-model= "name" ng-options="x for (x,y) in sites"></section>
三、AngularJS中的DOM操作
①ng-disabled="true/false"
当传入true时,控件禁用。传入false时,启用。
<label>
<input type="checkbox" ng-model="mySwitch">是否同意
小希真萌!
</label>
<button ng-disabled="!mySwitch" class="btn btn-primary">点我!</button>
<p></p>
②ng-show
默认隐藏 传入true时显示
<label>
<input type="checkbox" ng-model="mySwitch1">是否
显示?
</label>
<button ng-show="mySwitch1" class="btn btn-primary">点我!</button>
<p></p>
③ng-hide
默认显示 传入true是隐藏
<label>
<input type="checkbox" ng-model="mySwitch2">是否隐藏?
</label>
<button ng-hide="mySwitch2" class="btn btn-primary">点我!</button>
<p></p>
④ng-click
定义了AngularJS中的点击事件。
只能触发绑定在Angular作用域中的属性与方法。
<button ng-click="count = count + 1">点我!</button>
<p>{{ count }}</p>
<button ng-click="func()">说一下感想吧!</button>
DOM操作附录:
eg:
先导入JS文件angular.js!!!
<script src="libs/angular.js"></script>
JS代码:
angular.module("app",[])
.controller("ctrl",function($scope,$rootScope){
$scope.count = 10;
$scope.func = function(){
alert("小希真萌!");
}
})
五、AngularJS中的表单验证
1、表单中常见的验证操作:
$dirty:表单有填写记录
$valid:字段内容合法的
$invalid:字段内容是非法的
$pristine:表单没有填写记录
$error:表单验证不通过的错误信息
2、验证时需给表单及需要验证的input,设置name属性;
给form及input设置name后,会将form表单信息,默认绑定到$scope作用域中,故可以使用formName.inputName.$验证操作 得到验证结果;
eg:
formName.inputName.$dirty="true" 表单被填写过
formName.inputName.$invalid="true" 表单输入不合法
formName.inputName.$error.required="true" 表单必填但未填
$error支持的验证有:required/minlength/maxlength/pattern/email/number/data
/url等……
3、为避免冲突,例如使用type="email"时,H5也会进行验证操作。
如果只想使用AngularJS验证,可以使用<form novalidate></form>属性,禁用H5自带验证功能。
六、AngularJS中的动画
AngularJS中使用动画 :
提供了动画效果,可以配合 CSS使用。
1、AngularJS 使用动画需要引入angular-animate.js库!
2、如果页面中没有自定义的模块(ng-app),可以直接绑定系统模块ng-app="ngAnimate";
如果页面中已有自定义模块,可以在自定义模块后注入"ngAnimate"模块。
eg:angular.module("app",["ngAnimate"])
3、当调用相关指令控制元素显示隐藏时,会自动添加对应的class类;
ng-show/ng-hide 会移除/添加ng-hide
ng-if/ng-switch/ng-repeat等其他指令,需要分别设置显示后和隐藏后的class样式;
显示后:.ng-enter-active,.ng-leave{}
隐藏后:.ng-enter,.ng-leave-active{}
七、AngularJS中的路由
1、载入了实现路由的 js 文件:angular-route.js。
2、包含了 ngRoute 模块作为主应用模块的依赖模块。
eg:angular.module("app",["ngRoute"])
3.即将超链接改为路有格式:
eg:<a href="#/page1" rel="external nofollow" >page1</a>
4.在config中,注入$routeProvider,进行路由配置:
$routeProvider
.when('/',{template:'这是首页页面'})
.when('/page1',{template:'这是page1页面'})
.when('/page2',{template:'这是page2页面'})
.when('/page3',{template:'这是page3页面'})
.otherwise({redirectTo:'/'});
})
5、在页面的合适位置,添加ng-view,用于承载打开的页面
<div ng-view></div> <ng-view></ng-view>
【路由参数对象中可选属性】
1.tempalte:自定的HTML模板,会加载在ng-view中
2.tempalteUrl:导入外部的HTML模板,为了避免冲突外部的HTML只需要保留body内部的代码即可;
3.redirectTo:重定向于某个页面,一般用于.otherwise()中;
4.controller:在当模板上执行的controller函数,生成新的scope
以上这篇AngularJS实用基础知识_入门必备篇(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# AngularJS基础知识
# 详解使用angularjs的ng-options时如何设置默认值(初始值)
# 使用AngularJS对表单提交内容进行验证的操作方法
# AngularJS实现select的ng-options功能示例
# 详细AngularJs4的图片剪裁组件的实例
# AngularJS常见过滤器用法实例总结
# 详解angularJS自定义指令间的相互交互
# AngularJS使用ocLazyLoad实现js延迟加载
# AngularJS中使用three.js的实例详解
# 绑定
# 表单
# 这是
# 应用程序
# 自定义
# 可以使用
# 会将
# 给大家
# 创建一个
# 的是
# 加载
# 也会
# 多个
# 不需要
# 已有
# 可以用
# 并在
# 希望能
# 可以直接
# 只想
相关文章:
如何破解联通资金短缺导致的基站建设难题?
,网站推广常用方法?
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何在Windows 2008云服务器安全搭建网站?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
如何选择最佳自助建站系统?快速指南解析优劣
Python lxml的etree和ElementTree有什么区别
建站之星如何实现网站加密操作?
建站主机类型有哪些?如何正确选型
如何通过商城免费建站系统源码自定义网站主题?
实现虚拟支付需哪些建站技术支撑?
江苏网站制作公司有哪些,江苏书法考级官方网站?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
模具网站制作流程,如何找模具客户?
IOS倒计时设置UIButton标题title的抖动问题
黑客入侵网站服务器的常见手法有哪些?
名字制作网站免费,所有小说网站的名字?
,在苏州找工作,上哪个网站比较好?
如何在IIS中新建站点并配置端口与IP地址?
建站之星导航如何优化提升用户体验?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
微信小程序 input输入框控件详解及实例(多种示例)
如何用花生壳三步快速搭建专属网站?
如何安全更换建站之星模板并保留数据?
如何用PHP快速搭建CMS系统?
javascript中的try catch异常捕获机制用法分析
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何在IIS服务器上快速部署高效网站?
清除minerd进程的简单方法
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
5种Android数据存储方式汇总
建站之星代理费用多少?最新价格详情介绍
网站制作的步骤包括,正确网址格式怎么写?
已有域名和空间,如何快速搭建网站?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何快速搭建响应式可视化网站?
如何在局域网内绑定自建网站域名?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
无锡营销型网站制作公司,无锡网选车牌流程?
网站制作难吗安全吗,做一个网站需要多久时间?
建站之星代理如何获取技术支持?
建站之星安装提示数据库无法连接如何解决?
如何通过西部建站助手安装IIS服务器?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
如何通过.red域名打造高辨识度品牌网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。