**前端框架_AngularJS入门*

AngularsJS入门

1. 简介:
	* 它诞生于2009年,由Misko Hevery等人创建,后为Google所收购。它拥有诸多特性,最为核心:MVC、模块化、自动化双向数据绑定、依赖注入等;

2. 四大特征:
	1. MVC模式:
		* 它遵循MVC模式,并鼓励展现,数据,和逻辑组件之间的松耦合,通过依赖注入,它为客户端的Web应用带来了传统服务器的服务。
		* Model:数据,其实就是angular变量($scope.XX)
		* View:数据的呈现,Html+Directive(指令);
		* Controller:操作数据,就是function,数据的增删改查

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

	3. 依赖注入
		* 是一种设计模式,指某个对象的其他对象无需手工创建。
		* 此对象在创建时,其依赖的对象由框架来自动创建并注入进来,运用最少知识法则;
		* 模块中所有的service和provider两类对象,都可以根据形参名称实现DI.

	4. 模块化设计
		* 高内聚低耦合法则:高内聚是在一个模块中解决的问题都是相关联的,低耦合是模块与模块之间关联尽可能少;  [评价一个程序设计是否优良的重要判断标准]
		
		* 官方提供的模块:ng[核心]、ngRoute、ngAnimate[动画]
		* 用户自定义的模块: angular.module('模块名',[])

angularJS入门小程序

1. 表达式:

1. 程序演示:
	 <html>
	<head>
	<title> angularJS入门小程序小DEMO-1表达式</title>
	
	<script src="angular.min.js"></script>
	</head>
	<body ng-app>
	{{100}}
	</body>
	</html>

2. 分析:
	* 显示结果:100
	* 必备因素:
		1. 导入angular.min.js包
		2. body标签添加属性:ng-app :
			* 告诉子元素指令是归angulars的
			* 定义了AngularJS应用程序的根元素
			* 在网页加载完毕时,ng-app会自动引导(自动初始化)应用程序
		3. 表达式的写法: {{表达式}}       
			* 注意:表达式可以是变量或者运算式

2. 双向绑定

1. 程序演示:
	<html>
	<head>
	<title> angularJS入门小程序小DEMO-2 双向绑定</title>
	<script src="angular.min.js"></script>
	</head>
	<body ng-app>
	请输入姓名:<input ng-model="name">
	<input ng-model="name">
	{{name+name}}
	</body>
	</html>	

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

3. 初始化指令:

1. 程序演示:
	<html>
	<head>
	<title> angularJS入门小程序小DEMO-2 双向绑定</title>
	<script src="angular.min.js"></script>
	</head>
	<body ng-app>
	请输入姓名:<input ng-init="name='陈大海'">
	<input ng-model="name">
	{{name+name}}
	</body>
	</html>

2. 分析:
	* ng-init:可以使某些变量具有初始值,或者初始时就可以调用某些方法;

4. 控制器和事件指令

1. 程序演示:
	1. 演示1:
		<html>
		<head>
		<title> angularJS入门小程序小DEMO-4 控制器和事件</title>
		<script src="angular.min.js"></script>
		<script>
		<!--建立模块 -->
		var app=angular.module("myApp",[]);
		<!--创建控制器  $scope就是控制层与视图层之间交换数据的桥梁-->
		app.controller("myController",function($scope){
			$scope.add=function(){	
			return parseInt($scope.x)+parseInt($scope.y);
			}
		});
		</script>
		</head>
		<body ng-app="myApp" ng-controller="myController">
		第一个数:<input ng-model="x">
		第二个数:<input ng-model="y">
		{{add()}}
		</body>
		</html>
	2. 演示2:
		<html>
		<head>
		<title> angularJS入门小程序小DEMO-4 控制器和事件</title>
		<script src="angular.min.js"></script>
		<script>
		<!--建立模块 -->
		var app=angular.module("myApp",[]);
		<!--创建控制器  $scope就是控制层与视图层之间交换数据的桥梁-->
		app.controller("myController",function($scope){
			$scope.add=function(){	
			$scope.z= parseInt($scope.x)+parseInt($scope.y);
			}
		});
		</script>
		</head>
		<body ng-app="myApp" ng-controller="myController">
		第一个数:<input ng-model="x">
		第二个数:<input ng-model="y">
		<button ng-click="add()">运算</button>
		运算结果:{{z}}
		</body>
		</html>
2. 分析:
	1. 控制器:
		* ng-controller:用于指定所使用的控制器
		* $scope:它的使用贯穿AngularJS App应用,有了它就可以在视图和控制器之间建立一个通道,基于作用域视图在修改数据时会立刻更新$scope,同样的$scope发生改变时也会立刻重新渲染视图;

	2. 事件指令:
		* ng-click:是最重要的单击事件指令,在点击时触发控制器的某个方法;

	3. 注意:
		1. 导入angular.min.js包
		2. 在body体内
			* 需要给标签添加绑定属性-双向绑定:ng-model; 
			* 需要展示值-表达式:  {{}}

		3. 在<body>标签上需添加值-添加模块和控制器:
			* ng-app=""  ng-controller=""

		4. 在<script>标签内添加模块和控制器,以及事件:
			* 模块:  var app= angular.module("myApp",[])
			* 创建控制器:  app.controller("myController",function($cope)))
			* 创建事件1:  
				* $scope.add=function(){
				* return parseInt($scope.x)+parseInt($scope.y);
				* }
			* 创建事件2:
				* 给函数运行结果赋值,通过$.scope与html页面相连接;
				* 由于函数add()被button的单击事件所控制,当点击后触发该事件;
				* 将计算得到的值展示在表达式中;

5. 循环数组

1. 程序演示:
	<html>
	<head>
	<title> angularJS入门小程序小DEMO-6 循环数组</title>
	<script src="angular.min.js"></script>
	<script>
	<!--建立模块 -->
	var app=angular.module("myApp",[]);
	<!--创建控制器  $scope就是控制层与视图层之间交换数据的桥梁-->
	app.controller("myController",function($scope){
		$scope.list=[102,203,394,555];
	});
	</script>
	</head>
	<body ng-app="myApp" ng-controller="myController">
	<table>
		<tr ng-repeat="x in list">
			<td>{{x}}</td>
		</tr>
	</table>
	</body>
	</html>		
2. 分析:
	* 循环的时候注意:
		1. <tr>标签内添加<tr ng-repeat="x in list">
		2. 显示时必须要使用表达式格式:{{x}}

6. 循环对象

1. 程序演示:
	<html>
	<head>
	<title> angularJS入门小程序小DEMO-7 循环对象</title>
	<script src="angular.min.js"></script>
	<script>
	<!--建立模块 -->
	var app=angular.module("myApp",[]);
	<!--创建控制器  $scope就是控制层与视图层之间交换数据的桥梁-->
	app.controller("myController",function($scope){
		$scope.list=[
		{name:'张三',shuxue:100,yuwen:100},
		{name:'李四',shuxue:90,yuwen:90},
		{name:'王五',shuxue:89,yuwen:60}
		];
	});
	</script>
	</head>
	<body ng-app="myApp" ng-controller="myController">
	<table>
		<tr>
			<td>姓名</td>
			<td>数学</td>
			<td>语文</td>
		</tr>
		<tr ng-repeat="entity in list">
			<td>{{entity.name}}</td>
			<td>{{entity.shuxue}}</td>
			<td>{{entity.yuwen}}</td>
		</tr>
	</table>
	</body>
	</html>
2. 分析:
	1. list是数组,用[]包括数据,对象使用{},数组内可以有很多个对象,对象也可以有且有很多个数组,相互可以嵌套
	2. 对象的属性进行表示的时候,使用"对象名.属性值"来显示,切记外面需要加" {{}} " 表达式;

7. 内置服务

1. 程序演示:
	<html>
	<head>
	    <title> angularJS入门小程序小DEMO-8 内置服务</title>
	    <script src="angular.min.js"></script>
	    <script>
	        <!--建立模块 -->
	        var app=angular.module("myApp",[]);
	        <!--创建控制器  $scope就是控制层与视图层之间交换数据的桥梁-->
	        app.controller("myController",function($scope,$http){
	          $scope.findList=function () {
	              $http.get("data.json").success(
	                  function (response) {
	                      $scope.list=response;
	                  });}
	          /*
	          * $scope.findList();
	          * 这里也可以使用此方法
	          * */
	        });
	    </script>
	</head>
	<body ng-app="myApp" ng-controller="myController" ng-init="findList()">
	<table>
	    <tr>
	        <td>姓名</td>
	        <td>数学</td>
	        <td>语文</td>
	    </tr>
	    <tr ng-repeat="entity in list">
	        <td>{{entity.name}}</td>
	        <td>{{entity.shuxue}}</td>
	        <td>{{entity.yuwen}}</td>
	    </tr>
	</table>
	</body>
	</html>

2. 分析:
	* 在展示层:使用ng-init调用初始化方法,使用循环遍历对象,表达式接收对象
	* 在控制层:使用$scope与展示层沟通数据,使用$http与其他地方进行沟通数据(如与后端数据沟通),$scope创建findList方法,该方法被初始化调用,同时,该方法通过$http接收数据,如果成功则将数据赋值给list数组;

如果对您有一点帮助,请点个关注支持吧!^ ^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗余

码字来之不易,您的鼓励我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值