Rumah > hujung hadapan web > tutorial js > AngularJS入门常见知识总结

AngularJS入门常见知识总结

巴扎黑
Lepaskan: 2017-07-23 15:07:36
asal
1559 orang telah melayarinya

前言

今天来和大家学习一下AngularJS……

  AngularJS 通过新的属性和表达式扩展了 HTML。

  AngularJS 可以构建一个单一页面应用程序。

  AngularJS 学习起来非常简单。

 

 

一、AngularJS指令与表达式

【AngularJS常用指令】
1、ng-app:声明Angular所管辖的区域,一般写在body或HTML上,原则上一个页面只有一个。
2、ng-model:把元素值(比如输入域的值)绑定到应用程序的变量中。
eg:
3、ng-bind:把应用程序变量中的数据绑定到HTML视图中,可用表达式替代。
eg:


 
等效于
{{name}}

4、ng-init:初始化 AngularJS应用程序变量。
eg:
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:

{{"aBcDeF"|uppercase}}


{{"aBcDeF"|lowercase}}


{{123456|currency}}

 

【自定义过滤器】

1 .filter('reverse',function(){ //可以注入依赖2 return function(text){3 if(!angular.isString(text)){4 return "您输入的不是字符串!"5 }else{6 return text.split("").reverse().join("");7 }8 }9 })
Salin selepas log masuk

 

 

四、AngularJS中的 http && select && DOM操作

一、AngularJS中的http
$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。

二、AngularJS中的select
①使用数组作为数据源,其中,x表示数组的每一项。
默认会将x直接绑定到option的value中,而option显示的内容,由前面的x for...决定。
eg:

②使用对象作为数据源,其中,(x,y)表示键值对,x为键,y为值。
默认会将值y绑定到option的value中,而option显示的内容,由前面的x for...决定。
eg:

三、AngularJS中的DOM操作
①ng-disabled="true/false"
当传入true时,控件禁用。传入false时,启用。

   是否同意  
   小希真萌!




②ng-show
默认隐藏 传入true时显示

是否
       显示?


③ng-hide
默认显示 传入true是隐藏

是否隐藏?


④ng-click
定义了AngularJS中的点击事件。
只能触发绑定在Angular作用域中的属性与方法。

{{ count }}


 

DOM操作附录:
eg:
先导入JS文件angular.js!!!

<script src="libs/angular.js?1.1.11"></script>
Salin selepas log masuk

JS代码:

1 angular.module("app",[])2 .controller("ctrl",function($scope,$rootScope){3 $scope.count = 10;4 $scope.func = function(){5 alert("小希真萌!");6 }7 })
Salin selepas log masuk

 

五、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验证,可以使用

属性,禁用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:page1

4.在config中,注入$routeProvider,进行路由配置:
$routeProvider
     .when('/',{template:'这是首页页面'})
     .when('/page1',{template:'这是page1页面'})
     .when('/page2',{template:'这是page2页面'})
     .when('/page3',{template:'这是page3页面'})
     .otherwise({redirectTo:'/'});
})
5、在页面的合适位置,添加ng-view,用于承载打开的页面

【路由参数对象中可选属性】
1.tempalte:自定的HTML模板,会加载在ng-view中
2.tempalteUrl:导入外部的HTML模板,为了避免冲突外部的HTML只需要保留body内部的代码即可;
3.redirectTo:重定向于某个页面,一般用于.otherwise()中;
4.controller:在当模板上执行的controller函数,生成新的scope

 

 

 

 

 

今天的理论知识先分享到这里,愿能帮助到你~~~小菜鸟一枚,感谢您的支持!

 

 

 

 




作者:夕照希望
出处:  

Atas ialah kandungan terperinci AngularJS入门常见知识总结. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan