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.mzph.cn/web/9429.shtml

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

相关文章

【机器学习】AI时代的核心驱动力

机器学习&#xff1a;AI时代的核心驱动力 一、引言二、机器学习的基本原理与应用三、机器学习算法概览四、代码实例&#xff1a;线性回归的Python实现 一、引言 在数字化浪潮席卷全球的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经不再是科幻小说中的遥远概念&…

[muduo网络库]——muduo库三大核心组件之Channel类(剖析muduo网络库核心部分、设计思想)

接着上文[muduo网络库]——muduo库的Reactor模型&#xff08;剖析muduo网络库核心部分、设计思想&#xff09;&#xff0c;接下来详细介绍一下这三大核心组件中的Channel类。 先回顾一下三大核心组件之间的关系。 接着我们进入正题。 Channel Channel类封装了一个 fd 、fd感兴…

【STM32 |程序实测】LED灯闪烁、LED灯流水线、蜂鸣器

LED闪烁&LED流水灯&蜂鸣器的面包板接线图&#xff0c;及对应程序示例 LED闪烁 面包板接线图如下 开启APB2时钟&#xff0c;并且在GPIOA上进行配置&#xff0c;推挽输出&#xff0c;引脚A0&#xff0c;50HZ速度 #include "stm32f10x.h" /…

[Linux][网络][网络层][IP协议]详细讲解

目录 0.基本概念1.IP协议头格式2.IP分片与组装1.为什么要分片&#xff1f;2.分片后谁来组装&#xff1f;3.这个分片操作传输层知道吗&#xff1f;4.如何识别报文和报文的不同&#xff1f;5.接收端&#xff0c;如何得知报文是独立的还是一个分片&#xff1f;6.如何区别哪些分片是…

【论文泛读|附源码】如何进行动力学重构? 神经网络自动编码器结合SINDy发现数据背后蕴含的方程

这一篇文章叫做 数据驱动的坐标发现与方程发现算法。 想回答的问题很简单&#xff0c;“如何根据数据写方程”。 想想牛顿的处境&#xff0c;如何根据各种不同物体下落的数据&#xff0c;写出万有引力的数学公式的。这篇文章就是来做这件事的。当然&#xff0c;这篇论文并没有…

数据结构--图。

在前面&#xff0c;我们学习了线性表和树&#xff0c;而接下来我们要学习的图相较于他们就更加复杂。 目录 一.图的有关概念 一.图的有关概念 1.定义 图(graph)G由两个集合V和E组成&#xff0c;记为G&#xff08;VE)。V是顶点的有穷非空集合;E是边的集合,边是V中顶点的无序对…

【Linux】传输文件,补充:VMware中Linux系统无法连接网络的解决方法

Linux系统可以和其他系统之间进行传输文件&#xff0c;只要通过ssh连接成功以后&#xff0c;就能进行文件传输。 Linux系统也可以通过URL规则和网页之间进行传输文件&#xff08;即上传/下载&#xff09;。 1、Linux系统之间传输文件&#xff1a;scp centos7自带ssh服务&…

FPGA+炬力ARM实现VR视频播放器方案

FPGA炬力ARM方案&#xff0c;单个视频源信号&#xff0c;同时驱动两个LCD屏显示&#xff0c;实现3D 沉浸式播放 客户应用&#xff1a;VR视频播放器 主要功能&#xff1a; 1.支持多种格式视频文件播放 2.支持2D/3D 效果实时切换播放 3.支持TF卡/U盘文件播放 4.支持定制化配置…

36.Docker-Dockerfile自定义镜像

镜像结构 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。 镜像是分层机构&#xff0c;每一层都是一个layer BaseImage层&#xff1a;包含基本的系统函数库、环境变量、文件系统 EntryPoint:入口&#xff0c;是镜像中应用启动的命令 其他&#xff1a;在…

QT-小项目:连接MY SQL数据库实现登录(下一章实现登录注册账号和忘记密码功能)

一、环境准备 1、下载MYSQL 64位&#xff0c;安装完成&#xff0c;制作简易数据库教程如下&#xff1a; MY SQL安装 2、QT 编译器使用 二、实现工程目录&#xff08;基于上一章基础上&#xff09; 三、源程序增加内容如下&#xff1a; login.cpp 增加头文件&#xff1a; #in…

《TAM》论文笔记(上)

原文链接 [2005.06803] TAM: Temporal Adaptive Module for Video Recognition (arxiv.org) 原文代码 GitHub - liu-zhy/temporal-adaptive-module: TAM: Temporal Adaptive Module for Video Recognition 原文笔记 What&#xff1a; TAM: Temporal Adaptive Module for …

内网安全综合管理系统是什么 | 好用的内网安全管理系统有哪些

内网安全综合管理系统是指一种集成终端管理、网络管理、内容管理、资产管理等功能的综合性安全管理系统。它主要对内网上的主机进行统一安全管理&#xff0c;包括对网络主机用户操作实施监督控制&#xff0c;并对主机中的安全软件&#xff08;如主机入侵监测系统、主机防火墙和…

5 Spring 事务管理

目录 1.概述 2.事务特性&#xff1a;ACID 3.Spring 框架的事务管理支持两种方式 编程式事务 申明式事务 4.Spring 事务管理 API 事务管理器接口 Spring 的回滚方式 事务定义接口 事务的四种隔离级别 事务的七种传播行为 5.事务注解例子&#xff1a; Transactianal…

springboot+vue+mybatis警情高发智能灯箱+PPT+论文+讲解+售后

时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;警情高发智能灯箱当然不能排除在外。警情高发智能灯箱是在实际应用和软件工程的开发原理之上&#xff0c;运用微信开发者、java语言以及SpringBo…

python:做柱状图

import matplotlib.pyplot as plt # 数据 categories [A, B, C, D] values [23, 45, 56, 78] # 创建柱状图 plt.bar(categories, values) # 添加标题和标签 plt.title(柱状图示例) plt.xlabel(类别) plt.ylabel(数值) # 显示图形 plt.show() D:\software\新建文件夹\python\L…

力扣每日一题- 给植物浇水 II -2024.5.9

力扣题目&#xff1a;给植物浇水 II 题目链接: 2105.给植物浇水 II 题目描述 代码思路 根据题目内容&#xff0c;使用双指针从左右两边同时向中间移动&#xff0c;模拟浇水过程即可。 代码纯享版 class Solution {public int minimumRefill(int[] plants, int capacityA, …

java 文件表创建及前后端使用

表结构task_file 前端具体到业务表单 <el-form-item label"任务附件" prop"taskAttachment"><el-upload ref"upload" accept".jpg, .png, .txt, .xlsx, .doc, .docx, .xls, .pdf, .zip, .rar":action"upload.url" …

Go-Zero自定义goctl实战:定制化模板,加速你的微服务开发效率(四)

前言 上一篇文章带你实现了Go-Zero和goctl&#xff1a;解锁微服务开发的神器&#xff0c;快速上手指南&#xff0c;本文将继续深入探讨Go-Zero的强大之处&#xff0c;并介绍如何使用goctl工具实现模板定制化&#xff0c;并根据实际项目业务需求进行模板定制化实现。 通过本文…

videosapi开发微信管理系统

获取登录二维码&#xff1a; export interface Request {/*** 设备ID&#xff0c;首次登录传空&#xff0c;之后传接口返回的appId*/appId?: string;/*** 代理IP 格式&#xff1a;socks5://username:password123.2.2.2*/proxyIp?: string;/*** 地区*/regionId: string;[prop…

宋仕强论道之新质生产力

宋仕强论道之新质生产力&#xff0c;宋仕强说当前5G通信、人工智能、万物互联、工业互联网、数字经济、新能源技术和产业等领域正蓬勃发展&#xff0c;成为未来经济增长的重要推动力&#xff0c;也是目前提倡的新质生产力的重要组成部分。而这些领域的发展都离不开数据的采集、…