AngularJS实用基础知识_入门必备篇(推荐)
发布时间 - 2026-01-11 02:15:17 点击率:次前言

今天来和大家学习一下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的实例详解
# 绑定
# 表单
# 这是
# 应用程序
# 自定义
# 可以使用
# 会将
# 给大家
# 创建一个
# 的是
# 加载
# 也会
# 多个
# 不需要
# 已有
# 可以用
# 并在
# 希望能
# 可以直接
# 只想
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
图册素材网站设计制作软件,图册的导出方式有几种?
网站制作壁纸教程视频,电脑壁纸网站?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
如何撰写建站申请书?关键要点有哪些?
高端建站如何打造兼具美学与转化的品牌官网?
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
如何在 React 中条件性地遍历数组并渲染元素
如何在IIS中配置站点IP、端口及主机头?
Laravel如何处理文件下载请求?(Response示例)
javascript基本数据类型及类型检测常用方法小结
焦点电影公司作品,电影焦点结局是什么?
高防服务器租用首荐平台,企业级优惠套餐快速部署
Android实现代码画虚线边框背景效果
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
🚀拖拽式CMS建站能否实现高效与个性化并存?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
魔方云NAT建站如何实现端口转发?
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
Laravel如何实现多对多模型关联?(Eloquent教程)
Python正则表达式进阶教程_复杂匹配与分组替换解析
中山网站制作网页,中山新生登记系统登记流程?
如何在云主机快速搭建网站站点?
如何在宝塔面板中创建新站点?
动图在线制作网站有哪些,滑动动图图集怎么做?
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
微信小程序 wx.uploadFile无法上传解决办法
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Laravel如何使用Sanctum进行API认证?(SPA实战)
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
重庆市网站制作公司,重庆招聘网站哪个好?
北京专业网站制作设计师招聘,北京白云观官方网站?
音乐网站服务器如何优化API响应速度?
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
免费网站制作appp,免费制作app哪个平台好?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
如何在香港服务器上快速搭建免备案网站?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?

