zoukankan      html  css  js  c++  java
  • angular例子笔记

      

      学习angular的插件写法和制作;

    <!DOCTYPE html>
    <html ng-app="APP">
    <head>
        <meta charset="UTF-8">
        <title>angular-refresh example</title>
        <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.12/angular.min.js"></script>
    </head>
    <body ng-controller="ExampleController">
        <angular-refresh 
            url="http://filltext.com/?rows=10&fname={firstName}&lname={lastName}&callback=JSON_CALLBACK"
              ng-model="people"
              interval="5000"
              method="jsonp">
        </angular-refresh>
         <ul ng-repeat="person in people">
           <li>{{person.fname}} {{person.lname}}</li>
         </ul>
         <!--
          <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script>
         -->
        <script>
                           //直接依赖这个datarefresh模块;
        angular.module("APP",["datarefresh"]).
            controller("ExampleController",['$scope',function($scope){
        }]);
        </script>
        
        <script>
        angular.module('datarefresh', [])
    .directive('angularRefresh', ['$parse', '$timeout', '$http', function ($parse, $timeout, $http) {
        return {
            //E为tag类型, A为属性, C应该是注释;
            restrict: 'E',
            //template的元素肯定要一个总元素;
            template: '<div></div>',
            /*
              这个元素相当于是配置..一点用处都没有;
            */
            replace: true,
            link: function (scope, element, attrs) {
              console.log(element);
              var isRunning = true;
              var method = 'get';
              var url = '';
              
              function successFunction(data) {
                if (data !== undefined && isRunning) {
                  try {
                    /*
                    $parse(attrs.ngModel).assign返回的是一个闭包;
                    这个语句相当于执行 : 
                      1 : scope.people = data;
                      2 : scope.$apply()
                    */
                    $parse(attrs.ngModel).assign(scope, data);
                  }
                  catch (error) {
                    //Just in case scope got detroyed while we were trying to update
                    console.log(error);
                  }
                }
    
                if (isRunning) {
                  $timeout(function () { refreshFromUrl(url, interval); }, interval);
                }
              }
    
              function refreshFromUrl(url, interval) {
                if (isNaN(interval)) {
                  interval = 2000;
                };
    
                //通过$http的方式获取JSONP的数据;
                $http[method](url).success(function (data, status, headers, config) {
                  //对数据整理;
                  successFunction(data);
                })
                .error(function (data, status, headers, config) {
                  console.log(data);
                });
              }
    
              //通过各种方式获取配置验证是否为空;
              if (attrs.ngModel !== undefined && attrs.ngModel !== '' && attrs.url !== undefined && attrs.url !== '') 
              {
                  //获取间隔刷新的时间;
                  var interval = parseInt(attrs.interval);
                  if(isNaN(interval))
                      interval = 2000;
                      
                  //获取请求方式;
                  if(attrs.method !== undefined && attrs.method !== '') {
                    if(attrs.method.toLowerCase() == 'get' || attrs.method.toLowerCase()=='jsonp') {
                      method = attrs.method.toLowerCase();
                    }
                  }
    
                  //配置url;
                  url = attrs.url;
                  refreshFromUrl(url, interval);
              }
    
              scope.$on('$destroy', function () {
                  isRunning = false;
              });
            }
        }
    }]);
        </script>
    </body>
    </html>
  • 相关阅读:
    awk处理实记
    unity自动转换资源文件
    unity语音聊天之 www.GetAudioClip
    Unity屏蔽emoji
    UGUI Font模糊
    unity打光报错:Mesh doesnt have albedo UVs,Please creat them in your modelling package
    js的运行机制问题
    关于javaWeb中的路径问题总结
    关于TomCat上传文件中文名乱码的问题
    JavaSE阶段初期的一些问题
  • 原文地址:https://www.cnblogs.com/diligenceday/p/4170006.html
Copyright © 2011-2022 走看看