AngularJs的简单使用

嗯额,刚刚上手了AngularJs,感觉功能很强大,做一个简单的入门笔记吧,新鲜出炉的,嘿嘿。
首先我们要了解下什么是AngularJs:

AngularJS 是一个 JavaScript框架。它是一个以 JavaScript 编写的库;
它可通过script标签添加到HTML 页面。
AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML。AngularJS 是以一个 JavaScript 文件形式发布的,可通过 script 标签添加到网页中。简单的说它就是一个前端框架:主要特点有以下:
MVVM、模块化、自动化双向数据绑定、依赖注入、内部指令、语义化标签
AngularJs的不同版本区别较大,企业中使用较多的是1版本,目前已更新到4
我们通过几个小的demo来演示它的使用:
demo1:双向数据绑定:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>angularJs的事件绑定</title>
		<script  type="text/javascript" src="js/angular.min.js"></script>
	</head>
	<!--ng-app指定angular的作用域-->
	<body ng-app>
		<div>
			<!--模型的作用-->
			<input type="text" name="name" ng-model="name" />
		</div>
		<div>
			HELLO,{{name}}<!--等价于ng-bind用于视图显示-->
		</div>
	</body>
</html>

首先简单介绍几个标签的作用:
ng-app 在任何元素上使用,代表 angular 应用作用域
ng-controller 指定控制器
ng-model 指定模型
ng-bind 或者 {{属性名}} 进行属性取值 用于显示
页面效果:
这里写图片描述
当我们输入值时:
这里写图片描述

这里也就是双向数据绑定的效果:更新模型,视图会自动更新, 更新视图,模型会自动更新
demo2:基于模块化实现 MVC:
ps:在 AngularJS 的 1.3 Beta15 版本之前,可以定义全局控制器 <body ng-app ng-controller=”控制器方法名”> 在 AngularJS 的 1.3 Beta15 版本后,使用控制器,必须要指定模块 <body ng-app=”模块名” ng-controller=”控制器方法名”>

<body>
		<!-- ng-app="myapp" 定义了一个模块 -->
		<div ng-app="myapp" ng-controller="myctrl">
			<div>
				<!-- ng-model模型作用  -->
				<input type="text" name="name" ng-model="name" />
			</div>
			<div>
				<!-- {{}} 等价于 ng-bind 用于数据显示 -->
				Hello, {{name}}
			</div>
		</div>
		
		<script type="text/javascript">
			// 初始化 myapp 模块 
			var myapp = angular.module("myapp",[]);
			
			// 定义模块的控制器 
			// 依赖注入 ,$scope作用域对象,操作当前作用域视图 
			myapp.controller("myctrl", ["$scope", function($scope){
				// 对模型进行初始化赋值 
				$scope.name = "demo2";
			}]);
		</script>
	</body>

页面加载后:
这里写图片描述
修改输入框值后:
这里写图片描述
我们可以使用域对象对属性进行初始化赋值,当我们修改时,模型数据也会一起修改;
Controller 控制器 是 js 代码
Model 模型 是 name 属性
View 视图 是 {{name }}

demo3:AngularJS 事件绑定

<body>
		<!-- ng-app="myapp" 定义了一个模块 -->
		<div ng-app="myapp" ng-controller="myctrl">
			<div>
				<!-- ng-model模型作用  -->
				<input type="text" name="name" ng-model="name" />
				
				<!-- 提供按钮 --> 
				<input type="button" value="清空" ng-click="clearVal()" />
			</div>
			<div>
				<!-- {{}} 等价于 ng-bind 用于数据显示 -->
				Hello, {{name}}
			</div>
		</div>
		
		<script type="text/javascript">
			// 初始化 myapp 模块 
			var myapp = angular.module("myapp",[]);
			
			// 定义模块的控制器 
			// 依赖注入 ,$scope作用域对象,操作当前作用域视图 
			myapp.controller("myctrl", ["$scope", function($scope){
				// 对模型进行初始化赋值 
				$scope.name = "demo3";
				
				// 在作用域 提供 clearVal 点击事件 
				$scope.clearVal = function(){
					$scope.name = "" ; // 模型设置为空 
				}
			}]);
		</script>
	</body>

页面加载后:
这里写图片描述
点击清空按钮后:
这里写图片描述

demo4:集合数据遍历显示

<body ng-app="myapp" ng-controller="myctrl">
		<table width="100%" border="1">
			<tr>
				<th>序号</th>
				<th>商品编号</th>
				<th>商品名称</th>
				<th>价格</th>
			</tr>
			<tr ng-repeat="product in products">
				<td>{{$index+1}}</td>
				<td>{{product.id}}</td>
				<td>{{product.name}}</td>
				<td>{{product.price}}</td>
			</tr>
		</table>
	</body>
	
	<script type="text/javascript">
		var myapp = angular.module("myapp",[]);
		myapp.controller("myctrl",["$scope",function($scope){
			$scope.products = [
				{
					id : 1001,
					name : '数码相机',
					price : 3000
				},
				{
					id : 1002,
					name : '苹果手机',
					price : 7000
				}
			];
		}])
	</script>

页面加载后:
这里写图片描述
demo5:AngularJS 路由使用(页面架构 )
使用AngularJs路由功能时需要导入jar包:

<script  type="text/javascript" src="js/angular-route.min.js"></script>

1.编写页面布局, 将 AngularJS 加载变化部分 div,指定 ng-view

<body ng-app="myapp">
		<div>
			<h1>header</h1>
			<ul>
				<li><a href="#/">首页</a></li>
				<li><a href="#/users">用户管理</a></li>
				<li><a href="#/products">商品管理</a></li>
			</ul>
		</div>
		<!--显示不同页面的内容-->
		<!--ng-view显示路由调用的页面-->
		<div ng-view></div>
		<div>
			<h1>footer</h1>
		</div>
	</body>

2.编写 Angular 路由配置 routeProvider

<script type="text/javascript">
		var myapp = angular.module("myapp",["ngRoute"]);
		myapp.config(function($routeProvider) {
			//设置路由页面
			$routeProvider
			.when("/", {
				 templateUrl: '5_1.html'
			 }).when("/users", {
				 templateUrl: '5_2.html'
			 }).when("/products", {
				 templateUrl: '5_3.html'
			 }).otherwise({
			 	redirectTo: '/'
			 });
		});
	</script>

这样,我们就可以实现点击首页,用户管理或者商品管理,ng_view中的内容随之改变,而header和footer内容不变;
demo6:AngularHttp编程:
Angular文档中对此是这么描述的:
这里写图片描述
比如我要往后台传递一个参数"telephone",action路径为customer_sendSms;我们使用AngularJs编程可以这么写:

// 1 发送一个HTTP请求,通知服务器 发送短信给目标用户 
					var regex = /^1(3|5|7|8)\d{9}$/;
					if(regex.test(telephone)) {
						// 校验通过
						$http({
							method: 'GET',
							url: 'customer_sendSms.action',
							params : {
								"telephone" : telephone
							}
						}).error(function(data, status, headers, config) {
							// 当响应以错误状态返回时调用
							alert("发送短信出错,请重试");
						});
					} else {
						// 校验失败 
						alert("手机号非法,请重新输入 ");
						return;
					}

当然,这里我们也可以设置发送成功的状态,其实跟我们之前学习的ajax请求有点像

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AngularJS使用mock数据是一种常见的做法,可以帮助我们进行前端开发和测试。下面是一个简单的示例,演示如何在AngularJS使用mock数据。 首先,你需要创建一个mock数据文件,可以是一个JSON文件或JavaScript文件,来模拟接口返回的数据。例如,创建一个名为`mockData.js`的文件,内容如下: ```javascript angular.module('myApp') .value('mockData', { users: [ { id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Bob' } ] }); ``` 接下来,在你的AngularJS应用中,你可以使用`$httpBackend`来拦截请求并返回mock数据。例如,在你的控制器中注入`mockData`服务,并使用`$httpBackend`拦截请求: ```javascript angular.module('myApp') .controller('UserController', function($scope, $httpBackend, mockData) { // 拦截/users请求并返回mock数据 $httpBackend.whenGET('/users').respond(mockData.users); // 发送实际的请求 $http.get('/users').then(function(response) { $scope.users = response.data; }); }); ``` 这样,当你发送一个GET请求到`/users`时,`$httpBackend`会拦截请求并返回mock数据。 最后,确保在你的应用中加载mock数据文件和设置`ngMockE2E`模块。例如: ```javascript angular.module('myApp', ['ngMockE2E']) .run(function($httpBackend) { // 启用ngMockE2E来拦截请求 $httpBackend.whenGET(/.*/).passThrough(); }); ``` 这样,AngularJS应用就配置好了使用mock数据。 注意,这只是一个简单的示例,实际的应用中可能涉及更复杂的场景和数据。 希望对你有所帮助!如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值