AngularJS基本概念

版本:

AngularJs 1.x:https://angularjs.org/

AngularJs 2+:https://angular.io/ 或 https://angular.cn/

实现语言:

Angular 1.x:使用ES(avaScript)编写,可直接在浏览器中运行。

Angular 2+:基于TypeScript,需要经过编译后才能在浏览器中运行【需要引入很多第三方依赖】,因此需要使用构建工具。

适用场景:

Angular 1.x:在设计之初主要是针对PC端的,但有衍生框架支持如 ionic。

Angular 2+:目标是原生移动,支持I0S和Andriod

技术细节:

Angular 1.x 中的控制器在 Angular 2+ 中不再使用,也可以说控制器在 Angular 2中被 Component 组件所替代

1、模块与控制器

1.1 模块

AngularJS程序通过模块(module)来组织、实例化、启动应用程序,其作用为:

  • 存储一组Angularjs功能组件(如类、函数、变量等)
  • 目的隐藏每个模块的实现细节,从而降低开发难度
  • 可以与其他模块产生互相依赖的关系;

1)声明模块:

var app = angular.module('moduleName',[]);

参数1(name):定义模块的名称

参数2( [ ] ):“[ ]”代表一个数组,用来存放模块所依赖的其他模块的名称,如果数组为空,则表示模块没有依赖

2)绑定模块:ng-app

<div ng-app="moduleName"></div>

ng-app指令作用:

  1. 让AngularJS框架在指定的标签上启动,并载入这个模块
  2. 载入该模块后,在标签内部就可以使用该模块上的各种AngularJS功能组件,如控制器

1.2 控制器 

控制器的最大作用就是把作用域($scope)和模板上的HTML标签绑定到一起,然后在这个标签中的Angulans表达式就可以依附于该作用域执行。

一个模块可以有多个控制器。

1)控制器创建:

var app= angular.module('myApp',[]);
//$scope用到了依赖注入
app.controller('ControllerName',function($scope){//TOD0:为$scope准备各种数据
});

参数1(ControllerName):控制器名称
参数2:回调函数 function($scope){}

  • scope(作用域)是应用在 HTML(视图)和JavaScript(控制器)之间的纽带
  • scope 是一个JavaScript对象,有可用的方法和属性
  • scope 可应用在视图和控制器上

2)控制器绑定:ng-controller

 <div ng-controller='mycontroller'></div>

2、AngularjS作用域

一个 module 可以有多个 controller,每个 controller 中定义的数据(变量、函数...)应当有特定的作用范围

AngularJS是一个MVC(Model View Controller)框架,使用作用域(scope)来管理控制器(controller)和视图(view)之间的数据交互。在AngularS中,每个控制器都有一个作用域(scope),它是一个纯JavaScript对象,用于在控制器和视图之间传递数据。

作用域($scope),可以理解释为“数据仓库”,是一个JavaScript对象,包含属性和函数

作用域中定义的属性和方法,可以在【视图】和【控制器】 中使用

1)作用域中定义属性和函数:

app.controller('ControllerName',function($scope){// 定义属性name$scope.name = "lucy";// 定义函数say()$scope.say=function(){$scope.welcome ='welcome:'+ $scope.name +'!';};
});

2)根作用域($rootscope):

  • AngularJS中,所有应用都有一个根作用域($rootscope)
  • $rootScope用个各个控制器这间共享数据
  • $rootScope的作用范围,ng-app所指定的范围

创建格式:

<script>
var app=angular.module('myApp',[]);
app.controller('mycontroller',function($scope,$rootscope){// todo
});
</script>

3)作用域间的嵌套
AngularJS巧妙的使用了JavaScript原型链,实现了作用域的嵌套关系;
使用规则:

  • 优先使用当前作用域
  • 下级可以使用上级作用域
  • 上级不能作用下级作用域

3、AngularJS表达式

1)插值表达式语法格式:

{{ expression }}

2)过滤器

使用格式:

{{value | fiterl | filter2 ...}}

3)自定义过滤器

语法:

app.filter('过滤器名',function(){//在返回的这个函数中,还实现具体功能return function(待过滤数据,参数....){....return 已过滤数据}; 
});

举例:

<script>var myApp=angular.module('myApp',[]);myApp.filter('scoreFilter',function(){return function(score){if(score >= 90) return'优秀'if(score >= 80) return'良好'if(score >= 70) return'中等'if(score >= 60) return'及格'return'不及格';}
});
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/688947.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3分钟讲透服装行业数字化转型新方案!附服装数字化成功案例

前言&#xff1a; 现今&#xff0c;数字化已然成为经济发展的全新引擎。从国家的“十四五规划”&#xff0c;再到国资委的多次着重强调&#xff0c;伴随着政策体系的持续完善&#xff0c;中国的数字经济与数字化转型进程正在加速驶进快车道。 于所有企业来讲&#xff0c;数字…

1055: 邻接矩阵到邻接表

解法&#xff1a; #include<iostream> using namespace std; int arr[100][100]; int main() {int n;cin >> n;for (int i 0; i < n; i) {for (int j 0; j < n; j) {cin >> arr[i][j];}}for (int i 0; i < n; i) {for (int j 0; j < n; j) …

Vue3组件库开发项目实战——02项目搭建(配置Eslint/Prettier/Sass/Tailwind CSS/VitePress/Vitest)

摘要&#xff1a;在现代前端开发中&#xff0c;构建一个高效、可维护且易于协作的开发环境至关重要。特别是在开发Vue3组件库时&#xff0c;我们需要确保代码的质量、一致性和文档的完整性。本文将带你从0搭建vue3组件库开发环境&#xff0c;以下是配置代码规范、格式化、CSS样…

网络安全专业岗位详解+自学学习路线图

很多网安专业同学一到毕业就开始迷茫&#xff0c;不知道自己能去做哪些行业&#xff1f;其实网络安全岗位还是蛮多的&#xff0c;下面我会介绍一些网络安全岗位&#xff0c;大家可以根据自身能力与喜好决定放哪个方向发展。 渗透测试/Web安全工程师 主要是模拟黑客攻击&#…

lint 代码规范,手动修复,以及vscode的第三方插件eslint自动修复

ESlint代码规范 不是语法规范&#xff0c;是一种书写风格&#xff0c;加多少空格&#xff0c;缩进多少&#xff0c;加不加分号&#xff0c;类似于书信的写作格式 ESLint:是一个代码检查工具&#xff0c;用来检查你的代码是否符合指定的规则(你和你的团队可以自行约定一套规则)…

探索循环购模式:消费返利与积分机制的创新融合

大家好&#xff0c;我是吴军&#xff0c;今天非常荣幸能与大家分享一种别具一格的商业模式——循环购模式。这种商业模式在近年来逐渐崭露头角&#xff0c;受到了广大消费者的热烈追捧。或许您之前听说过消费满额即送现金的活动&#xff0c;但循环购模式不仅仅局限于此&#xf…

逻辑位运算符、|、^、~(接上篇二进制十进制)

上一篇中总结了二进制与十进制的转换,下面再来总结位运算,其实就是对二进制数执行的计算 逻辑位运算符 位与&#xff08;&&#xff09;、位或&#xff08;|&#xff09;、位异或&#xff08;^&#xff09;、非位&#xff08;~&#xff09; "&"运算 用于对…

泵站远程监控

在科技日新月异的今天&#xff0c;智能化管理已经成为各行业提升效率、降低成本的关键手段。特别是在水利领域&#xff0c;泵站作为水资源调配的重要节点&#xff0c;其运行效率和安全稳定性直接关系到整个供水系统的稳定。HiWoo Cloud平台凭借其强大的物联网和云计算技术&…

Java 开发 框架安全:Spring 漏洞序列.(CVE-2022-22965)

什么叫 Spring 框架. Spring 框架是一个用于构建企业级应用程序的开源框架。它提供了一种全面的编程和配置模型&#xff0c;可以简化应用程序的开发过程。Spring 框架的核心特性包括依赖注入&#xff08;Dependency Injection&#xff09;、面向切面编程&#xff08;Aspect-Or…

微火全域外卖团购服务,引领商家与合伙人变革行业赛道!

在当今的数字化时代&#xff0c;外卖业务正成为越来越多人的日常生活选择。然而&#xff0c;随着市场的日益饱和和竞争的加剧&#xff0c;传统外卖模式已经难以满足商家和消费者的多元化需求。正是在这样的背景下&#xff0c;全域外卖团购业务应运而生&#xff0c;以其独特的模…

TikTok海外运营:云手机的四种快速变现方法

随着TikTok用户基数的持续扩大&#xff0c;这个平台已成为全球创业者和品牌的新战场。其用户群接近20亿&#xff0c;并以年轻用户为主力军&#xff0c;市场渗透率逐年攀升。无论是大型组织、知名品牌&#xff0c;还是个人创业者&#xff0c;都无法忽视TikTok所带来的巨大商机。…

【VTKExamples::Rendering】第五期 环形阵列Rotations

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例环形阵列Rotations,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1. Rotations