AngularJS 笔记2
2017-03-23
本文更新链接: http://www.cnblogs.com/daysme/p/6613071.html
$http
- angularjs中的ajax
- 向服务器请求数据
-
1/2 后台文件 test.php
<?php $str='你好'; echo $str; ?>
-
2/2 前台文件
<!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <script> // angular.element(document).ready(function(){}) //angularjs不需要像jq这样写 var mod=angular.module('app',[]); mod.controller('ctrl',['$scope','$http',function($scope,$http){ $http({ method:'get', url:'test.php' }).success(function(data){ console.log(data); }).error(function(){ console.log(1); }) }]) // 向服务器请求数据-简写 // var mod=angular.module('app', []); // mod.controller('ctrl', ['$scope','$http', function($scope,$http){ // $http.get('test.php').success(function(data){ // console.log(data); // }).error(function(){ // console.log(1); // }) // }]) </script> </body> </html>
-
登录验证,只有用户名 xw ,密码为 123 时才登陆成功。
-
1/2 后台代码 act.php
<?php $user=$_GET["user"]; $pass=$_GET["pass"]; if ($user=="xw"&&$pass=="123"){ echo '{"err":0,"msg":"登陆成功"}'; }else{ echo '{"err":1,"msg":"登陆失败"}'; } ?>
-
2/2 前台代码
<!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"> <input type="text" ng-model="name"><br> <input type="text" ng-model="password"><br> <button ng-click="tap()">登录</button> </div> <script> var mod=angular.module('app', []); mod.controller('ctrl',['$scope','$http',function($scope,$http){ $scope.tap=function(){ $http({ method:'get', url:'act.php', params:{user:$scope.name,pass:$scope.password} }).success(function(data){ console.log(data.msg); }).error(function(data){ console.log(data.msg) }) } }]) </script> </body> </html>
$timeout 延时
-
3秒之后把’菜鸟’变成’大神’
<!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"> <div>{{hello}}</div> </div> <script> // 定时 var mod=angular.module('app',[]); mod.controller('ctrl',['$scope','$timeout',function($scope,$timeout){ $scope.hello='菜鸟'; $timeout(function(){ $scope.hello='大神'; },3000) }]) </script> </body> </html>
$interval 定时
-
从0开始,每秒自增1
<!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"> <div>{{hello}}</div> </div> <script> // 定时 var mod=angular.module('app',[]); mod.controller('ctrl',['$scope','$interval',function($scope,$interval){ $scope.hello='0'; $interval(function(){ $scope.hello++; },1000) }]) </script> </body> </html>
$cacheFactory 缓存
- angularjs中的 localStrange 。不同的是在浏览器中看不到这些保存的数据,而且浏览器刷新后缓存会丢失。
-
存取健值
<!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"></div> <script> var mod=angular.module('app',[]); // 存取数据 mod.controller('ctrl',['$scope','$cacheFactory',function($scope,$cacheFactory){ var cache=$cacheFactory('mydata'); cache.put('name','xw'); cache.put('age','21'); cache.put('job','coder'); cache.put('obj',JSON.stringify({'key1':'val1','key2':'val2'})); //保存对象 console.log(cache.info(),cache.get('name')); //Object {id: "mydata", size: 3} "xw" console.log(JSON.parse(cache.get('obj'))); //取出对象 }]) </script> </body> </html>
$log 打印输出
``` html
<!DOCTYPE html>
<html lang="en" ng-app="app">
<meta charset="UTF-8">
<script src="angular1.min.js"></script>
<body>
<div ng-controller="ctrl"></div>
<script>
var mod=angular.module('app',[]);
打印输出
mod.controller('ctrl',['$scope','$log',function($scope,$log){
$log.log('你好');
$log.info('你好');
$log.error('你好');
$log.warn('你好');
}])
</script>
</body>
</html>
```
jsonp 百度搜索提示api
-
搜索框动态搜索提示,搜索关键字提示
<!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"> <input ng-model="name" ng-keyup="tap()"> <ul> <li ng-repeat="x in data" ng-bind="x"></li> </ul> </div> <script> var mod=angular.module('app',[]); mod.controller('ctrl',['$scope','$http','$timeout',function($scope,$http,$timeout){ var timer=null; $scope.data=[]; $scope.tap=function(){ $timeout.cancel(timer); //执行过多 timeout 后的回调函数 timer=$timeout(function(){ $http({ method:'jsonp', url:'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd='+$scope.name+'&cb=JSON_CALLBACK' //JSON_CALLBACK 是 angular 中固定的 }).success(function(data){ console.log(data); $scope.data=data.s; }) },500) } }]) </script> </body> </html>
MD:

## $http - angularjs中的ajax - 向服务器请求数据 - 1/2 后台文件 test.php ``` php <?php $str='你好'; echo $str; ?> ``` - 2/2 前台文件 ``` html <!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <script> // angular.element(document).ready(function(){}) //angularjs不需要像jq这样写 var mod=angular.module('app',[]); mod.controller('ctrl',['$scope','$http',function($scope,$http){ $http({ method:'get', url:'test.php' }).success(function(data){ console.log(data); }).error(function(){ console.log(1); }) }]) // 向服务器请求数据-简写 // var mod=angular.module('app', []); // mod.controller('ctrl', ['$scope','$http', function($scope,$http){ // $http.get('test.php').success(function(data){ // console.log(data); // }).error(function(){ // console.log(1); // }) // }]) </script> </body> </html> ``` - 登录验证,只有用户名 xw ,密码为 123 时才登陆成功。 - 1/2 后台代码 act.php ``` php <?php $user=$_GET["user"]; $pass=$_GET["pass"]; if ($user=="xw"&&$pass=="123"){ echo '{"err":0,"msg":"登陆成功"}'; }else{ echo '{"err":1,"msg":"登陆失败"}'; } ?> ``` - 2/2 前台代码 ``` html <!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"> <input type="text" ng-model="name"><br> <input type="text" ng-model="password"><br> <button ng-click="tap()">登录</button> </div> <script> var mod=angular.module('app', []); mod.controller('ctrl',['$scope','$http',function($scope,$http){ $scope.tap=function(){ $http({ method:'get', url:'act.php', params:{user:$scope.name,pass:$scope.password} }).success(function(data){ console.log(data.msg); }).error(function(data){ console.log(data.msg) }) } }]) </script> </body> </html> ``` ## $timeout 延时 - 3秒之后把'菜鸟'变成'大神' ``` html <!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"> <div>{{hello}}</div> </div> <script> // 定时 var mod=angular.module('app',[]); mod.controller('ctrl',['$scope','$timeout',function($scope,$timeout){ $scope.hello='菜鸟'; $timeout(function(){ $scope.hello='大神'; },3000) }]) </script> </body> </html> ``` ## $interval 定时 - 从0开始,每秒自增1 ``` html <!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"> <div>{{hello}}</div> </div> <script> // 定时 var mod=angular.module('app',[]); mod.controller('ctrl',['$scope','$interval',function($scope,$interval){ $scope.hello='0'; $interval(function(){ $scope.hello++; },1000) }]) </script> </body> </html> ``` ## $cacheFactory 缓存 - angularjs中的 localStrange 。不同的是在浏览器中看不到这些保存的数据,而且浏览器刷新后缓存会丢失。 - 存取健值 ``` html <!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"></div> <script> var mod=angular.module('app',[]); // 存取数据 mod.controller('ctrl',['$scope','$cacheFactory',function($scope,$cacheFactory){ var cache=$cacheFactory('mydata'); cache.put('name','xw'); cache.put('age','21'); cache.put('job','coder'); cache.put('obj',JSON.stringify({'key1':'val1','key2':'val2'})); //保存对象 console.log(cache.info(),cache.get('name')); //Object {id: "mydata", size: 3} "xw" console.log(JSON.parse(cache.get('obj'))); //取出对象 }]) </script> </body> </html> ``` ## $log 打印输出 ``` html <!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"></div> <script> var mod=angular.module('app',[]); 打印输出 mod.controller('ctrl',['$scope','$log',function($scope,$log){ $log.log('你好'); $log.info('你好'); $log.error('你好'); $log.warn('你好'); }]) </script> </body> </html> ``` ## jsonp 百度搜索提示api - 搜索框动态搜索提示,搜索关键字提示 ``` html <!DOCTYPE html> <html lang="en" ng-app="app"> <meta charset="UTF-8"> <script src="angular1.min.js"></script> <body> <div ng-controller="ctrl"> <input ng-model="name" ng-keyup="tap()"> <ul> <li ng-repeat="x in data" ng-bind="x"></li> </ul> </div> <script> var mod=angular.module('app',[]); mod.controller('ctrl',['$scope','$http','$timeout',function($scope,$http,$timeout){ var timer=null; $scope.data=[]; $scope.tap=function(){ $timeout.cancel(timer); //执行过多 timeout 后的回调函数 timer=$timeout(function(){ $http({ method:'jsonp', url:'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd='+$scope.name+'&cb=JSON_CALLBACK' //JSON_CALLBACK 是 angular 中固定的 }).success(function(data){ console.log(data); $scope.data=data.s; }) },500) } }]) </script> </body> </html> ```
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)