AngularJS基础语法(2009版本)

news2025/1/14 17:54:01

jquery和AngularJS 数据绑定和获取对比:

jquery,要操作DOM:

 angularJS,无需操作DOM就可以进行动态数据变化:

 要使用Angularjs就需要在html页面先引入:

ng-app: 

html页面中,需要给标签绑定ng-app指令标记当前页面,注意ng-app通常绑定给body标签。

如果ng-app="" ,可以默认写为ng-app

只有给html绑定了ng-app,才会产生$rootScope。

如果不给页面body绑定ng-app指令,那么在view视图中{{}}就无法生效,页面直接显示为{{}}字符。

ng-model:

 

 语句和表达式的区别:

ng-init:

用来初始化当前作用域变量

ng-init是单向数据绑定,由页面view->模型model;

ng-model是双向数据绑定,页面view->模型model ,也可以从模型model->页面view

双向数据绑定:

 作用域对象和控制器对象:

给html绑定ng-app指令,会生成最顶层的$rootScope作用域对象。

给单独的标签添加ng-controller绑定一个函数,ng-controller指令会自动new此函数。这个函数会接收一个形参必须是$scope,在这个函数中就可以对ng-controller定义区域内的变量进行变量初始化和创建方法,产生一个单独的作用域空间。注意必须使用$scope初始化变量和创建方法。

 

所以控制器函数的形参一定是$scope。

 总结:

ng-app会创建一个根作用域对象$rootScope,通过ng-init初始化全局变量。

ng-controller会创建控制器对象例如MyController,生成一个单独的作用域空间$scope,$scope是在$rootScope下的,在ng-controller控制的view视图内,可以直接调用ng-init初始化的变量。

例如:在$rootScope全局作用域下初始化age变量:

 在控制器对象MyController区域view视图内直接调用age

 

 

 ng-app和ng-controller也可以写在一个标签上

依赖注入: 

依赖注入分为声明式依赖注入和命令式依赖注入,首先理解一下声明式和命令式的区别:

 

声明式依赖注入: 

 event就是依赖,同理控制器中的$scope也是依赖;

这种以形参的形式被注入使用的方式就是声明式依赖注入

命令式依赖注入:

AngularJS的模块对象

在angular中,像下面这种生成MyController生成控制器对象这种方式不多,更多的是使用Angular的模块对象angular.module.controller()更方便。 

angular.module模块可在全局位置创建、注册、获取Angular模块。所有模块(angular核心或第三方)都必须使用这个机制注册才能在应用中生效。

一个模块式服务、指令、控制器、过滤器和配置信息的集合。angular.module用于配置injector。

首先想使用angular,就需要先引入:

书写视图:

JS:

视图中的ng-app绑定的名称就是模块的名字

 生成作用域对象代码优化:

链式调用:

再次优化:

注意:

表达式:

常用指令:

ng-repeat:

ng-repeat的$index输出数组的下标;

ng-repeat的$first输出当前元素是否是第一项,输出布尔值;

ng-repeat的$last输出当前元素是否是最后一项,输出布尔值;

ng-repeat的$middle输出当前元素是否属于中间项,输出布尔值;

ng-repeat的$odd输出当前元素下标是否属于奇数,输出布尔值;

ng-repeat的$even输出当前元素下标是否属于偶数,输出布尔值;

遍历数组显示数据,数组有几个元素就会产生几个新的作用域,见下图验证: 

 

ng-bind:

ng-show、ng-hide:

ng-style:

ng-mouseenter、ng-mouseleave:

ng-class:

需求:循环ul标签,各行变色 

AngularJS内置服务  $http:

遍历动态生成表格:

 

 angular的过滤器filter

参考:AngularJS 过滤器 (详解)_angularjs过滤器-CSDN博客

过滤器作用:将数据转换成自己想要的形式后输出,格式化数据;

过滤器写法:待处理数据 | 过滤器名称:参数

angular内置过滤器:

currency :"货币"

例如:

 

date : "日期格式字符串"

例如: 

 

 tip: 过滤器可以链式调用

 

 uppercase

将字符串text大写输出

filter

filter第一个参数可以是下列三种类型,第二个参数为true的时候顺序反转。

等等......

详细可以看上面的参考链接,博主很详细。

自定义过滤器:

如果内置的过滤器无法满足自己的需求,就可以自定义过滤器。

需求:将手机号码中间4位用型号表示:

js:

自定义过滤器写法:

angular.moudule('ng-app绑定的名称',[]).filter("过滤器名称",回调(return回调))

 view:

优化:

无论号码多长,只保留前三位和后四位,中间使用*隐藏

angularJS的指令:

AngularJS 参考手册 | 菜鸟教程

上面的地址涵盖了angularJS的所有内置指令

ng-src:

如果直接给src绑定{{a}},后台会报错

如果使用ng-src就不会报错 。<img ng-src="{{a}}"

ng-cloak:

没加载之前先隐藏,在网速慢的时候,变量还未渲染时,不会显示{{}}空的字符串,而是这个div直接不显示

ng-href:

为防止页面还没有加载完毕时,客户五点了a标签却没有任何响应的问题 

ng-switch

 

ng-bind-html 和 ng-bind的区别:

 

 

 ng-bind 和 ng-bind-template:

使用ng-bind-template就可以输出

 ng-include:

 

ng-options

先来看使用普通方法ng-repeat渲染下拉:

 

再通过使用ng-options渲染下拉:

ng-options替你组织options

1、必须有ng-model

2、值 as 文字 for item in arr

 ng-options使用升级:

select下拉分组,group by xxx

 

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

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

相关文章

html期末复习速览

一.基础标签 1.段落标签<p></p> 特点&#xff1a;分段分割 2.标题标签<h1></h1>……<h6></h6> 特点&#xff1a;文字加粗&#xff0c;单独占一行 3.换行标签<br /> 特点&#xff1a;单标签&#xff0c;强制换行 二.文本格式化…

数据结构与算法笔记:基础篇 - 数组:为什么数组都是从0开始编号

概述 提到数组&#xff0c;大家应该都不陌生。每一种编程语言基本都会有数组这种数据类型。不过&#xff0c;它不仅仅是一种编程语言中的数据类型&#xff0c;还是一种基础的数据结构。尽管数组看起来非常简单&#xff0c;但是我估计很多人并没有理解这个数据结构的精髓。 在…

ros DWA局部规划模块

ROS-DWA模块 主要流程DWAPlannerROS::computeVelocityCommandsDWAPlannerROS::dwaComputeVelocityCommandsDWAPlanner::findBestPathSimpleScoredSamplingPlanner::findBestTrajectory 调参技巧DWA被目标点过度吸引&#xff0c;且不听全局规划器指挥 消融实验goal_front_costs_…

写大型C工程makefile构建~

正文 最开始学习linux应用开发编写的时候&#xff0c;估计大部分伙伴们都是在一个目录里面编译整个工程&#xff0c;主要是linux通常没有非常合适的集成开发环境。 以前单目录的方式实在太过捡漏&#xff0c;在linux环境中进行C代码工程开发很多时候需要编写一个相对比较通用的…

android gradle8.3 发布插件踩过的坑

之前写过gradle6.x和gradle7.x的插件&#xff0c;会有一些改动&#xff0c;到8.x我发现又有一些变化&#xff0c;记录一下&#xff0c;防止后边再遇到相同的情况 下边是插件的gradle文件配置 plugins {id("java-gradle-plugin") //会自动引入java-library、gradleAp…

SwiftUI中Popover的使用(弹出方式,箭头位置,如何退出)

在iOS中&#xff0c;popover是出现在现有内容顶部的UI元素&#xff0c;通常用于在上下文中向用户呈现新视图。与其他占用整个屏幕的视图控制器不同&#xff0c;popover出现在一个较小的、集中的区域&#xff0c;从而使用户能够在必要时与popover外的应用程序的其他部分进行交互…

C#的web项目ASP.NET

添加实体类和控制器类 using System; using System.Collections.Generic; using System.Linq; using System.Web;namespace WebApplication1.Models {public class Company{public string companyCode { get; set; }public string companyName { get; set; }public string com…

国产飞腾/龙芯/瑞芯微芯片在信创行业应用:金融行业、教育行业、党政机关

党政机构 方案背景&#xff1a; 在国家提出信息技术应用创新发展战略的大环境下&#xff0c;政务大厅需要基于国家科技自主技术深入推进“互联网政务服务”。加快建设全国一体化在线政务服务平台&#xff0c;进一步落实创新驱动发展战略&#xff0c;提升政务网络安全保障能力…

智慧园区整理技术方案(ppt,软件全套建设方案)

智慧园区管控平台整体技术方案 1.平台概述 2.公共安全 3.物业管理 4.综合管理 5.企业服务 平台规划&#xff0c;整理技术架构搭建&#xff0c;统一门户&#xff0c;lot物联平台&#xff0c;视频云管理平台&#xff0c;GIS服务平台&#xff0c;服务器架构&#xff0c;统一身份认…

Ps:调整画笔工具

调整画笔工具 Adjustment Brush Tool可以将选区、创建蒙版和应用调整的传统工作流程合并为一个步骤&#xff0c;简化了对图像进行非破坏性局部调整的操作。 快捷键&#xff1a;B 调整画笔工具是 Photoshop 2024 年 5 月版&#xff08;25.9 版&#xff09;新增的工具。 ◆ ◆ …

JavaSE:SE知识整体总结

1、引言 历时一个多月的学习&#xff0c;已经掌握了JavaSE的知识&#xff0c;这篇博客就来做一下SE知识的总结~ 2、数据类型和变量 Java中的数据类型分为基本数据类型和引用数据类型。 2.1 基本数据类型 基本数据类型共有四类八种&#xff1a; 四类&#xff1a;整形、浮点…

遗留和现代数据库中的向量搜索

遗留和现代数据库中的向量搜索 image1 向量数据库是一种将数据&#xff08;包括文本、图像、音频和视频&#xff09;存储为向量的数据库&#xff0c;向量是高维空间中对象或概念的数学表示。 注意&#xff1a;根据数据的复杂程度和细节&#xff0c;每个向量的维数可能差别很大&…

SpringBoot的第二大核心AOP系统梳理

目录 1 事务管理 1.1 事务 1.2 Transactional注解 1.2.1 rollbackFor 1.2.2 propagation 2 AOP 基础 2.1 AOP入门 2.2 AOP核心概念 3. AOP进阶 3.1 通知类型 3.2 通知顺序 3.3 切入点表达式 execution切入点表达式 annotion注解 3.4 连接点 1 事务管理 1.1 事务…

面试杂谈k8s

其实看我之前的博客&#xff0c;k8s刚有点苗头的时候我就研究过&#xff0c;然后工作的时候间接接触 也自己玩过 但是用的不多就忘记了&#xff0c;正苦于不知道写什么&#xff0c;水一篇 用来面试应该是够了 支持云应用开发、运行与运维一体化的云应用平台软件应运而生 k8s核…

前端树形结构组件的设计与实现:以企查查、天眼查股权结构为例

摘要 随着信息化时代的不断发展&#xff0c;数据可视化在各行各业的应用越来越广泛。特别是在商业信息查询领域&#xff0c;如企查查、天眼查等平台&#xff0c;通过直观的数据展示方式&#xff0c;帮助用户快速理解复杂的商业关系。本文将以一个前端tree树形结构模版组件为例…

CompassArena 司南大模型测评--代码编写

测试角度 要说测试模型&#xff0c;对咱们程序员来说&#xff0c;那自然是写代码的能力强不强比较重要了。那么下面我们以 leetcode 中的一道表面上是困难题的题目来考考各家大模型&#xff0c;看看哪个才应该是咱们日常写程序的帮手。 部分模型回答 问题部分如下截图&#…

Day-04python模块

一、模块 1-1 Python 自带模块 Json模块 处理json数据 {"key":"value"} json不是字典 本质是一个有引号的字符串数据 json注意点 {} 中的数据是字符串引号必须是双引号 使用json模块可以实现将json转为字典&#xff0c;使用字典的方法操作数据 。 或者将…

HCIP-Datacom-ARST自选题库__MAC【14道题】

一、单选题 1.缺省情况下&#xff0c;以下哪种安全MAC地址类型在设备重启后表项会丢失? 黑洞MAC地址 Sticky MAC地址 安全动态MAC地址 安全静态MAC地址 2.华为交换机MAC地址表中的动态sticky MAC地址的默认老化时间是多少秒? 300 不会老化 400 500 3.华为交换机MA…

apache大数据各组件部署搭建(超级详细)

apache大数据数仓各组件部署搭建 第一章 环境准备 1. 机器规划 准备3台服务器用于集群部署,系统建议CentOS7+,2核8G内存 172.19.195.228 hadoop101 172.19.195.229 hadoop102 172.19.195.230 hadoop103 [root@hadoop101 ~]# cat /etc/redhat-release CentOS Linux rele…

揭秘APP广告变现项目

在当今移动应用市场&#xff0c;广告变现已经成为开发者盈利策略的重要组成部分。 通过在应用程序中展示多种类型的广告&#xff0c;如插页式广告、横幅广告和激励视频广告&#xff0c;开发者能够获得经济效益。 实现这一目标的核心在于平衡收入与用户体验&#xff0c;避免过…