angularJS要点记录,$location,$http等等

王珊数据库系统概论第5版视频教材 目录 隐藏 说明:本课程共包括1种电子书、84个高清视频(共68课时)、1种纸质书(赠品)。 网授课程 王珊《数据库系统概论》(第5版)网授精讲班【共68课时】 序号 名称 课时 1 第1章 绪 论(1) 00:32:25 2 第1章 绪 论(2) 00:17:03 3 第1章 绪 论(3) 00:50:19 4 第1章 绪 论(4) 00:20:37 5 第1章 绪 论(5) 00:24:47 6 第2章 关系数据库(1) 00:47:23 7 第2章 关系数据库(2) 00:14:48 8 第2章 关系 阅读详情

前言:只是对angular的一些知识点的记录,不做深入研究。

一、AngularJS四大特征

AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、依赖注入等等。

1.MVC 模式

Angular遵循软件工程的MVC模式,并鼓励展现,数据,和逻辑组件之间的松耦合.通过依赖注入(dependency injection),Angular为客户端的Web应用带来了传统服务端的服务,例如独立于视图的控制。 因此,后端减少了许多负担,产生了更轻的Web应用。

Model:数据,其实就是angular变量($scope.XX);(类似service)

View: 数据的呈现,Html+Directive(指令);

Controller:操作数据,就是function,数据的增删改查;

即会把js拆分为service和controller层,其中service层主要就是存放一些后端定义好的接口url,也可以加上对应的参数等,如下图:

然后就可以在controller层中调用这些方法,并进行一些逻辑的书写,如下图:

在HTML里面书写对应的ng-controller进行绑定 

<body class="hold-transition skin-red sidebar-mini" ng-app="lehuan" ng-controller="goodsController"
      ng-init="findItemCatList()">

2.双向绑定 

AngularJS是建立在这样的信念上的:即声明式编程应该用于构建用户界面以及编写软件构建,而指令式编程非常适合来表示业务逻辑。框架采用并扩展了传统HTML,通过双向的数据绑定来适应动态内容,双向的数据绑定允许模型和视图之间的自动同步。因此,AngularJS使得对DOM的操作不再重要并提升了可测试性。

3.依赖注入 

依赖注入(Dependency Injection,简称DI)是一种设计模式, 指某个对象依赖的其他对象无需手工创建,只需要“吼一嗓子”,则此对象在创建时,其依赖的对象由框架来自动创建并注入进来,其实就是最少知识法则;模块中所有的service和provider两类对象,都可以根据形参名称实现DI。

4.模块化设计

高内聚低耦合法则:模块内的东西相关联;模块之间之间少用关联和依赖

1)官方提供的模块           ng、ngRoute(路由)、ngAnimate(动画)

2)用户自定义的模块     angular.module('模块名',[ ])

二、一些常用指令(放在你需要实现功能的地方)

1、表达式

表达式的写法是{{表达式 }} 表达式可以是变量或是运算式,即两个大括号

ng-app 指令 作用是告诉子元素一下的指令是归angularJs的,angularJs会识别的

ng-app 指令定义了 AngularJS 应用程序的 根元素。

ng-app 指令在网页加载完毕时会自动引导(自动初始化)应用程序。

2、双向绑定

ng-model 指令用于绑定变量,这样用户在文本框输入的内容会绑定到变量上,而表达式可以实时地输出变量。

3、初始化指令

我们如果希望有些变量具有初始值,可以使用ng-init指令来对变量初始化。

4、控制器

ng-controller用于指定所使用的控制器。先建立模块,然后通过模块创建控制器

<html>
<head>
	<title>入门小Demo-3  初始化</title>
	<script src="angular.min.js"></script>
	<script>
		var app=angular.module('myApp',[]); //定义了一个叫myApp的模块,module是一个方法,[]中可以放其他模块名,表示引用另一个模块
		//定义控制器,第一个参数为控制器名称,第二个参数是一个方法,其中$scope是控制层与视图层之间交换数据的桥梁
		app.controller('myController',function($scope){
// $scope可以看成是一个大变量,其中又有一个函数类型的add变量
			$scope.add=function(){
				return parseInt($scope.x)+parseInt($scope.y);
			}
		});
	</script>
</head>
<body ng-app="myApp" ng-controller="myController">
//绑定两个变量名
x:<input ng-model="x" >
y:<input ng-model="y" >
运算结果:{{add()}}
</body>
</html>

理解 $scope:$scope 的使用贯穿整个 AngularJS App 应用,它与数据模型相关联,同时也是表达式执行的上下文.有了$scope 就在视图和控制器之间建立了一个通道,基于作用域视图在修改数据时会立刻更新 $scope,同样的$scope 发生改变时也会立刻重新渲染视图。

5、事件、条件、复选框指令

ng-click  是最常用的单击事件指令,再点击时触发控制器的某个方法,可以用它绑定方法名,实现对应的方法

ng-if   用于条件判断

ng-checked  指令控制复选框的勾选状态

6、循环指令ng-repeat和ng-options

如:

<tr ng-repeat="x in list">

           <td>{{x}}</td>

</tr>

ng-repeat指令用于循环数组变量,其中x为变量,list为被循环的数组。此外,还有循环对象数组:

<tr ng-repeat="entity in list">

           <td>{{entity.name}}</td>

           <td>{{entity.shuxue}}</td>

           <td>{{entity.yuwen}}</td>

</tr>

$index 用于获取ng-repeat指令循环中的索引。

ng-options属性可以在表达式中使用数组或对象来自动生成一个selected中的option列表。ng-options与ng-repeat很相似,很多时候可以用ng-repeat来代替ng-options。但是ng-options提供了一些好处,例如减少内存提高速度,以及提供选择框的选项来让用户选择。

7、服务

内置服务:

1.$http

在angularJS里面,服务可以分为自定义或者是内置的服务器。其中,内置服务主要有:$http,因为数据一般都是在后端的,所以一般使用内置服务$http来实现。

//定义控制器
		app.controller('myController',function($scope,$http){		
			$scope.findAll=function(){
				$http.get('data.json').success(
                function(response){
						$scope.list=response;
					}					
				);			
//文件上传服务层
app.service("uploadService",function($http){
	this.uploadFile=function(){
		var formData=new FormData();
	    formData.append("file",file.files[0]);   
		return $http({
            method:'POST',
            url:"../upload.do",
            data: formData,
// 如果不指定为undefined默认为json格式
headers: {'Content-Type':undefined},
//要对表单进行二进制的序列化
            transformRequest: angular.identity
        });		
	}	
});

AnjularJS对于post和get请求默认的Content-Type header 是application/json。通过设置‘Content-Type’: undefined,这样浏览器会帮我们把Content-Type 设置为 multipart/form-data.

通过设置 transformRequest: angular.identity ,anjularjs transformRequest function 将序列化我们的formdata object.

2.$controller

angular提供的一个服务,可以实现伪继承,实际上就是与BaseController共享$scope

app.controller('brandController' ,function($scope,$controller,
brandService){	
	$controller('baseController',{$scope:$scope});
//继承,其实是通过传递$scope来实现继承,赋值当前$scope为继承的控制器中的$scope	

3.$location

$location服务,可以在静态页面传参,即在url中带参数。

 

//商品控制层(商家后台)

app.controller('goodsController',function($scope,$controller,$location,goodsService,uploadService,item_catService,type_templateService){

......

    //查询实体

    $scope.findOne=function(){           

        var id= $location.search()['id'];//$location.search() 设置或获取 网页地址跟在问号后面的部分

        if(id==null){

             return ;

        }

        goodsService.findOne(id).success(

             function(response){

                 $scope.entity= response;                 

             }

        );              

    }

注意: url增加参数的时候,在 ?前要加# ,这是angularJS的地址路由的书写形式  ,如:http://localhost:9102/admin/goods_edit.html#?id=149187842867969

$sce

$sce服务的trustAsHtml方法来实现转换,这是angularJS信任策略

// 定义模块:

var app = angular.module("pinyougou",[]);

/*$sce服务写成过滤器,一个过滤器只做一件事, 'trustHtml'自己起的名字*/

app.filter('trustHtml',['$sce',function($sce){

    return function(data){//传入参数是被过滤的内容(信任HTML的转换)

        return $sce.trustAsHtml(data);   //返回过滤后的内容

    }

}]);

ng-bind-html指令用于显示html内容,竖线 |用于调用过滤器

<div class="attr" ng-bind-html="item.title | trustHtml"></div>

自定义服务:

顾名思义就是自己定义的一些服务,可以理解为service层中的每个service就是一服务,然后在controller层中的function中进行引入,就像引入$http服务那样子。

$interval   服务用来处理间歇性处理一些事情

$interval(执行的函数,间隔的毫秒数,运行次数);

运行次数可以缺省,如果缺省则无限循环执行  ,取消执行用cancel方法:$interval.cancel(time);    例子如下:

	$scope.second = 10; 
	time= $interval(function(){ 
	  if($scope.second>0){ 
		$scope.second =$scope.second-1;  			
	  }else{
		  $interval.cancel(time); 		  
		  alert("秒杀服务已结束");
	  }
	},1000);

页面用表达式显示$scope.second的值

8、继承 

对于一些复用性比较高的功能,可以将他们抽取出来,后面直接继承他们的功能。

9、$watch方法

$watch方法用于监控某个变量的值,当被监控的值发生变化,就自动执行相应的函数,即watch函数有两个参数,一个是监控的变量的值,一个是要值变化的时候要执行的方法。

//读取二级分类
$scope.$watch('entity.goods.category1Id', function(newValue, oldValue) {          
    	//根据选择的值,查询二级分类
    	itemCatService.findByParentId(newValue).success(
    		function(response){
    			$scope.itemCat2List=response; 	    			
    		}
    	);    	
}); 

10、浅克隆和深克隆

浅克隆:一个对象;深克隆:两个对象

             var newRow= JSON.parse( JSON.stringify( oldRow )  );  //深克隆 

扣子Coze工作流教程:采集公众号爆文,一键仿写自动发布 通过本教程,你学会了如何利用扣子(Coze)平台构建一个完整的公众号文章自动处理工作流。这个系统不仅能够大幅提升内容产出效率,还能通过AI二创保持内容新鲜度和原创性。最佳实践建议:初次使用时,建议先保存为草稿而不是直接发布,以便人工审核;从简单的工作流开始,逐步增加复杂度;定期检查工作流运行日志,优化节点配置。自动化内容创作是新媒体运营的未来趋势,掌握这项技能将使你在数字内容领域占据显著优势。 阅读详情

相关推荐

避开生产计划大坑:不懂MPS和MRP的区别,你的SAP PP模块白学了

本文深入解析SAP PP模块中MPS(主生产计划)与MRP(物料需求计划)的核心区别,揭示如何通过正确配置避免生产计划中的常见陷阱。文章详细探讨了MPS的三大缓冲特性和动态平衡算法,帮助企业提升生产计划稳定性,优化资源配置,避免生产线波动。

weixin_29268267的博客 401

AngularJs Using $location详解及示例代码

一、What does it do?   $location服务分析浏览器地址栏中的URL(基于window.location),让我们可以在应用中较为方便地使用URL里面的东东。在地址栏中更改URL,会响应到$location服务中,而在$location中修改URL,也会响应到地址栏中。   $location服务: 暴露当前浏览器地址栏的URL,所以我们可以 1.

巴黎的妖 772

Win11下CH340串口识别失败的终极排查指南:从驱动更新到硬件电路检查

本文提供了Windows 11系统下CH340串口芯片识别失败的全面排查指南。从驱动更新、系统设置等软件层面入手,逐步深入到USB线缆、电源测量等硬件连接检查,并重点剖析了硬件设计细节,如电源退耦电容容值对设备描述符请求的关键影响,最终帮助开发者系统性地定位并解决识别难题。

weixin_29174013的博客 590

ng-repeat使用方法

最简单形式ng-repeat="item in arr" 有时候,我们会遇到数组里有重复元素的情况,这时候,ng-repeat代码不能起作用,原因是Angular默认需要在数组中使用唯一索引,那假如我们的数据确实如此,怎么办呢?可以指定它使用序号作索引,就像这样:ng-repeat="item in arr track by $index" 也可以把多维数组用多层循环的方式迭代出来: $scope.

princekin_wdk的博客 4107

排队论在食堂窗口规划中的应用:M/M/S模型优化案例

本文通过食堂窗口规划的真实案例,详细阐述了如何运用排队论中的M/M/S模型量化服务效率。文章从问题拆解、数据采集、模型计算到成本效益分析,提供了完整的数学建模实战指南,帮助读者掌握利用最优化方法解决资源配置问题的核心流程与工具。

docker7nomad的博客 1083

ROS2学习笔记(二)-- 多机通讯原理简介及配置方法

简单介绍ROS2多机通信原理以及配置注意事项

aibingjin的博客 1万+

AngularJs 学习之 ng-repeat-start,ng-repeat-end 指令

页面: 一条数据占一行,如果分行显示则不容易实现。

IT枫斗者的博客 998

可视化大屏系列(5):设备状态面板与数据分析仪表盘

在这篇文章中,我们将重点讨论如何通过智能化手段提升工地设备的管理效率与维护质量。随着智能工地系统的不断发展,设备监控与维护管理变得尤为重要。本篇将从 设备状态实时监控、自动化维护提醒、设备管理与维修记录 三个方面入手,展示如何通过 Vue3 和 ECharts 构建一个智能化的设备管理平台,实时采集和展示设备运行状态、及时生成维护提醒并记录维修历史,以提高设备的使用效率与安全性。我们还将结合实际代码示例,详细讲解如何实现这些功能,帮助你在智能工地项目中实现设备管理的智能化、数字化和自动化。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 3365

ng-repeat

ng-repeat指令会重复一个 HTML 元素 <div ng-app="" ng-init="names=['Jani','Hege','Kai']"> <p>使用 ng-repeat 来循环数组</p> <ul> <li ng-repeat="x in names"> {{ x ...

weixin_30809173的博客 216

大唐杯历届省赛押题训练(6)

考试-TD-LTE无线网络设备介绍-TD-LTE网络架构一、单选题1TD-LTE的接入网E-UTRAN由下列哪些网元组成( )。0分/1分A、RNCB、BTSC、eNode BD、Node B提交答案:B正确答案:C考点TD-LTE网络架构解析暂无试题解析二、多选题1关于LTE网络整体结构,哪些说法是正确的( )0分/2分A、E-UTRAN用E-NodeB替代原有的RNC-NodeB结构B、E-NodeB间的接口为S1接口C、各网络节点之间的接口使用IP传输。

nimo观察者 634

提示工程架构师揭秘:prompt优化中的“隐性成本”如何控制?

当我们谈论Prompt优化时,往往聚焦于“效果提升”——比如让模型生成更准确的回答、更符合要求的格式。优化的本质是“成本-收益”的平衡。那些看不见的“隐性成本”,比如反复调试的时间消耗、复杂Prompt带来的认知负荷、长文本导致的系统资源浪费、后续维护的无穷麻烦,往往会在长期运营中成为压垮效率的“稻草”。本文将从提示工程架构师的视角,揭秘Prompt优化中的“隐性成本”到底是什么、如何量化,以及通过哪些工程化手段将这些“看不见的消耗”转化为“可控制的效率”。

操作系统内核探秘的博客 700

ng-repeat的使用

作用 一般用于遍历数据生成模板,我们来看一个例子 实例 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.6.8/angular.min.js"></script> </head> <body>

youhebuke225的博客 910

HyperLynx(十八)DDR(一)DDR简介和DDR的数据仿真

LVTTL电平为单端信号,而SSTL电平本质上是差分对,其实现机制是将信号与参考电平Vref组成差分对进行比较,如图所示,VIH和VIL各有一个交流参数AC和直流参数DC,信号第一次越过AC门限的时刻,作为时序计算的参考点,此后只要信号保持DC门限内,逻辑状态保持不变,这种设计减小了噪声、振铃等对于信号质量的影响。经过调整后,控制器在发送颗粒1的DQS后,延时1ns再发送颗粒2的DQS,则颗粒1在1ns后收到对齐的DQS和CLK,颗粒2在2ns后收到对齐的DQS和CLK,从而满足了时序关系。

小幽余生不加糖 7676

AngularJS常用服务($http、$location、$sce等)

这篇博客,只是简单地说下AngularJS中的常用的系统(自带)服务。如果逻辑不清晰,就当作是一个参考手册吧,来查查用法什么的。 另外,附上一些参考网站: AngularJS手册:http://man.hubwiz.com/manual/AngularJS(汇智网) AngularJS常用服务:https://docs.angularjs.org/api/ng/service(AngularJ

VitaLemon__的专栏 7029

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

AngularJs常用服务($http,$location,$sce等)

http://blog.youkuaiyun.com/vitalemon__/article/details/52163866 链接地址 AngularJS常用服务($http、$location、$sce等) 原创2016年08月09日 17:29:25 4408 这篇博客,只是简单地说下AngularJS中的常用的系统(自带)服务。如果逻辑不清晰,就当作是...

327

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

angularjs中$http、$location、$watch及双向数据绑定学习实现简单登陆验证

angularjs中$http、$location、$watch及双向数据绑定学习实现简单登陆验证 使用$http、$location、$watch及双向数据绑定等实现简单的用户登陆验证,记录备忘: 1、$http模拟从后台获取json格式的数据; 2、$watch实时监控数据变化; 3、$location.path实现页面跳转; 4、$scope实现数据绑定,包括i

bestlove12345的博客 835

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Angularjs 常用服务 $http $location $anchorScroll $cacheFactory $timeout $interval $sce

Angularjs 常用服务 $http $location$anchorScroll $cacheFactory $timeout $interval $sce学习要点:1. Angularjs 中的 $http 服务2. Angularjs 中的 $location $anchorScroll 服务3. Angularjs 中的 $cacheFactory 服务4. An...

weixin_34203426的博客 119

angularjs 服务

AngularJS 服务(Service) AngularJS 内建了30 多个服务 10.6.1. $location 服务,   它可以返回当前页面的 URL 地址。 app.controller('customersCtrl', function($scope, $location) {    $scope.myUrl = $location.absUrl(); }); 10.6.

信念堤岸 410

angularjs服务

服务是一个对象或函数,对外提供特定的功能 $location: 处理url 内置方法 : absUrl():全部的url路径 url():第一个#之后的部分 host():主机名 search():在#之后的查询参数(自动转为json对象) hash():第一个#之后的#号之后的路径 protocal(): 协议 port() :端口号 定时器服务 $timeout $interval ...

weixin_30817749的博客 85

AngularJS中服务和自定义服务的常见方式及特点

服务需要引入angualr.sanitize.js模块; var app = angular.module('myapp',['ngSanitize']) 服务 1. $http 能够进行数据的交互 eg:调用百度接口,通过回调函数将搜索的值输出 <div ng-controller="yourController"> &l...

weixin_30478619的博客 108

AngularJS 学习笔记 04:服务(services)

服务(services) $location 定时器(timeout 和 interval) $filter $log $http 服务(services) 在 AngularJS 中,服务是一个函数或对象 var app = angular.module('App',[]); // 使用前需依赖注入该($location)服务 app.controller('Dem...

凝弧 208

Angular.js(六)

$http服务详解:和ajax原理很像,写法类似 $anchorScrollProvider:自动跳转服务的供应商 $q :就是promise的实现方式,也就是对异步操作进行功能扩展 $q.defer().resolve:成功 $q.defer().reject:失败 $q.defer().notify:通知 then():监听(成功或者失败) $location :对原生JS中的location进行封装处理 hash(),path(),search()既可以获取值,也能设置值 port(端口号),host

anran_1211的博客 355

AngularJs的一些知识点-2

1. angular的依赖注入 定义:依赖注入(Dependency Injection)是一种经典的设计模式,主要是用来处理组件如何获取依赖的问题。依赖注入可以简单的理解为:在一个容器中我们定义了很多个模块和组件化服务,当模块需要某些服务时,只需要跟容器说我需要这些服务,并且只需要提供服务的名称,容器就会自动提供这些服务的实例。调用服务的模块不需要考虑这些服务是怎么来的,这些服务会由容器通过...

wangongda的博客 301

ionic 视频

八、Angularjs自定义服务 provide里provider方法 以及factory、service方法以及provider供应商的概念 Angular 提供了3种方法来创建并注册我们自己的服务。 1. Provider Providers 是唯一一种你可以传进 .config() 函数的 service。当你想要在 service 对象启用之前,先进行模块范围的配置,那就

随笔 2055

AngularJS 学习

标签 : web angularjs html 记录不怎么熟悉的语法 AngularJS 教程 AngularJS Scope(作用域) AngularJS 控制器 AngularJS 过滤器 过滤器 自定义过滤器 AngularJS 服务(Service) $location $http 服务 $timeout 服务 创建自定义服务 AngularJS XMLHttpRequest...

Scfan的博客天涯 888

angularjs

angularjs: $location.absUrl(); 当前页面的url $http app.service app.filter Select: ng-options="x for x in names" [{a: c, b: d},{a:c, b: d}] ng-options="x for (x,y) in sites" {a: b, c: d} ng-repeat="x in names" ...

u011966169的博客 166
上一篇: HTTP1.0和HTTP2.0的区别,以及HTTP和HTTPS的区别
下一篇: 后端程序员需要了解的前端知识(持续更新中)
striveb
博客等级 码龄10年 242粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值