首页 > 其他分享 >angular例子笔记

angular例子笔记

时间:2023-01-13 15:32:52浏览次数:49  
标签:function url interval 笔记 method 例子 attrs scope 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>

 

天道酬勤



标签:function,url,interval,笔记,method,例子,attrs,scope,angular
From: https://blog.51cto.com/u_12304260/6006082

相关文章

  • angularJS中-$route路由-$http(ajax)的使用
    后台请求使用的是nodeJS驱动(后面帖代码),很简单的RESTFUL,页面使用的是bottstarp3.0(懒人神器); 第一个例子:在本地架设NODEJS,angular的所有请求都是请求本地的300......
  • angular_$inject
    <!DOCTYPEHTML><htmllang="zh-cn"ng-app="MainApp"><head><metacharset="UTF-8"><title>explicit-inject-service</title></head><body><divng-controller="My......
  • Alan的Docker容器学习笔记
    (本文的内容主要来源于Google、百科和学过的一些专栏,目前没有实际的企业级应用容器化部署经验,写的比较浅薄见笑了)为什么会接触到Docker运维同学使用k8s将业务迁移上云时遇到......
  • Burp Suit个人完整笔记
    简介功能:测试网站安全性抓HTTP包、改HTTP包;自动请求、过滤响应特点:集成化,自动化,可扩展个人版下载和激活:BP下载​​https://portswigger.net/burp/releases​​说明:......
  • Angularjs——初识AngularJS
    AngularJS——初识AngularJSAngularJS是什么AngularJS是Google开源的一款前端JS结构化框架,它通过对前端开发进行分层,极好地规范了前端开发的风格——它将前端开发分为Con......
  • cs231n学习笔记——Lecture7 Training Neural Networks
    该博客主要用于个人学习记录,部分内容参考自:CS231n笔记七:训练神经网络3(优化方法)、局部最小值(localminima)和鞍点(saddlepoint)一、更好地优化FancierOptimization1......
  • JavaScript学习笔记—循环
    JS三种循环语句while语句do-while语句for语句通常编写一个循环,需要有三个条件:(1)初始化表达式(2)条件表达式(3)更新表达式1.while循环语法while(condition){......
  • cs231n学习笔记——Lecture11 Detection and Segmentation
    该博客主要用于个人学习记录,部分内容参考自:CS231n笔记九:图像目标检测和图像分割、2017CS231n笔记_S11分割,定位,检测一、语义分割SemanticSegmentation目标:输入图像,并对......
  • cs231n学习笔记——Lecture10 Recurrent Neural Network
    该博客主要用于个人学习记录,部分内容参考自:2017CS231n笔记_S10循环神经网络、CS231n笔记十:循环神经网络一、循环神经网络(RecurrentNeuralNetworks,RNN)1、RNN的基本结......
  • cs231n学习笔记——Lecture9 CNN Architecture
    该博客主要用于个人学习记录,部分内容参考自:[Lecture9]CNNArchitectures(CNN架构)、CNNArchitecture1、LeNetLeNet在数字识别领域的应用方面取得了成功1、AlexNet(......