码迷,mamicode.com
首页 > Web开发 > 详细

AngularJS 笔记2

时间:2017-03-24 20:03:09      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:user   javascrip   浏览器   span   XML   大神   http   取数   meta   

 

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>
  ```
View Code

 

AngularJS 笔记2

标签:user   javascrip   浏览器   span   XML   大神   http   取数   meta   

原文地址:http://www.cnblogs.com/daysme/p/6613071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!