首页 > 代码库 > angular例子笔记
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>
angular例子笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。