AngularJS XMLHttpRequest


$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。


读取 JSON 文件

以下是存储在web服务器上的 JSON 文件:

Customers_JSON.php

  1. [{
  2. "Name":"Alfreds Futterkiste",
  3. "City":"Berlin",
  4. "Country":"Germany"
  5. },{
  6. "Name":"Berglunds snabbköp",
  7. "City":"Luleå",
  8. "Country":"Sweden"
  9. },{
  10. "Name":"Centro comercial Moctezuma",
  11. "City":"México D.F.",
  12. "Country":"Mexico"
  13. },{
  14. "Name":"Ernst Handel",
  15. "City":"Graz",
  16. "Country":"Austria"
  17. },{
  18. "Name":"FISSA Fabrica Inter. Salchichas S.A.",
  19. "City":"Madrid",
  20. "Country":"Spain"
  21. },{
  22. "Name":"Galería del gastrónomo",
  23. "City":"Barcelona",
  24. "Country":"Spain"
  25. },{
  26. "Name":"Island Trading",
  27. "City":"Cowes",
  28. "Country":"UK"
  29. },{
  30. "Name":"Königlich Essen",
  31. "City":"Brandenburg",
  32. "Country":"Germany"
  33. },{
  34. "Name":"Laughing Bacchus Wine Cellars",
  35. "City":"Vancouver",
  36. "Country":"Canada"
  37. },{
  38. "Name":"Magazzini Alimentari Riuniti",
  39. "City":"Bergamo",
  40. "Country":"Italy"
  41. },{
  42. "Name":"North/South",
  43. "City":"London",
  44. "Country":"UK"
  45. },{
  46. "Name":"Paris spécialités",
  47. "City":"Paris",
  48. "Country":"France"
  49. },{
  50. "Name":"Rattlesnake Canyon Grocery",
  51. "City":"Albuquerque",
  52. "Country":"USA"
  53. },{
  54. "Name":"Simons bistro",
  55. "City":"København",
  56. "Country":"Denmark"
  57. },{
  58. "Name":"The Big Cheese",
  59. "City":"Portland",
  60. "Country":"USA"
  61. },{
  62. "Name":"Vaffeljernet",
  63. "City":"Århus",
  64. "Country":"Denmark"
  65. },{
  66. "Name":"Wolski Zajazd",
  67. "City":"Warszawa",
  68. "Country":"Poland"
  69. }]
 
 

AngularJS $http

  1. AngularJS $http 是一个用于读取web服务器上数据的服务。
  2. $http.get(url)是用于读取服务器数据的函数。
 
  1. <div ng-app="myApp" ng-controller="customersCtrl">
  2. <ul>
  3. <li ng-repeat="x in names">
  4. {{ x.Name+', '+ x.Country}}
  5. </li>
  6. </ul>
  7. </div>
  8. <script>
  9. var app = angular.module('myApp',[]);
  10. app.controller('customersCtrl',function($scope,$http){
  11. $http.get("Customers_JSON.php")
  12. .success(function(response){$scope.names = response.records;});
  13. });
  14. </script>

应用解析:

注意:以上代码的 get 请求是本站的服务器,你不能直接拷贝到你本地运行,会存在跨域问题,解决办法就是将 Customers_JSON.php 的数据拷贝到你自己的服务器上。

AngularJS 应用通过 ng-app 定义。应用在 <div> 中执行。

ng-controller 指令设置了 controller 对象 名。

函数 customersController 是一个标准的 JavaScript 对象构造器

控制器对象有一个属性: $scope.names

$http.get() 从web服务器上读取静态 JSON 数据

当从服务端载入 JSON 数据时,$scope.names 变为一个数组。

 
魔芋练习:
 
其中,test.php 文件内容为:
  1. {"records":[{"Name":"Alfreds Futterkiste","City":"Berlin","Country":"Germany"},{"Name":"Ana Trujillo Emparedados y helados","City":"México D.F.","Country":"Mexico"},{"Name":"Antonio Moreno Taquería","City":"México D.F.","Country":"Mexico"},{"Name":"Around the Horn","City":"London","Country":"UK"},{"Name":"B's Beverages","City":"London","Country":"UK"},{"Name":"Berglunds snabbköp","City":"Luleå","Country":"Sweden"},{"Name":"Blauer See Delikatessen","City":"Mannheim","Country":"Germany"},{"Name":"Blondel père et fils","City":"Strasbourg","Country":"France"},{"Name":"Bólido Comidas preparadas","City":"Madrid","Country":"Spain"},{"Name":"Bon app'","City":"Marseille","Country":"France"},{"Name":"Bottom-Dollar Marketse","City":"Tsawassen","Country":"Canada"},{"Name":"Cactus Comidas para llevar","City":"Buenos Aires","Country":"Argentina"},{"Name":"Centro comercial Moctezuma","City":"México D.F.","Country":"Mexico"},{"Name":"Chop-suey Chinese","City":"Bern","Country":"Switzerland"},{"Name":"Comércio Mineiro","City":"São Paulo","Country":"Brazil"}]}
 
demo.html内容为:
 
  1. <!DOCTYPE html>
  2. <html lang="zh-cn">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="renderer" content="webkit">
  6. <!--360,以webkit内核进行渲染-->
  7. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  8. <!--以最新内核进行渲染。-->
  9. <meta http-equiv="Cache-Control" content="no-siteapp"/>
  10. <!--百度禁止转码-->
  11. <title>moyu demo</title>
  12. <meta name="keywords" content="demo 测试 魔芋">
  13. <meta name="description" content="魔芋的测试示例">
  14. <meta name="robots" content="index,follow">
  15. <!--定义网页搜索引擎索引方式-->
  16. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  17. <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
  18. <script src="http://apps.bdimg.com/libs/angular.js/1.3.9/angular.min.js"></script>
  19. <style>
  20. </style>
  21. </head>
  22. <body>
  23. <div ng-app="myApp" ng-controller="customersCtrl">
  24. <ul>
  25. <li ng-repeat="x in names">
  26. {{ x.Name+', '+ x.Country}}
  27. </li>
  28. </ul>
  29. </div>
  30. <script>
  31. var app = angular.module('myApp',[]);
  32. app.controller('customersCtrl',function($scope, $http){
  33. $http.get("test.php")
  34. .success(function(response){
  35. $scope.names = response.records;
  36. });
  37. });
  38. </script>
  39. </body>
  40. </html>
 
结果:
 
 
 
 
 
 
 
 
 
 
 
**

【08】AngularJS XMLHttpRequest的更多相关文章

  1. SSAS系列——【08】多维数据(程序展现Cube)

    原文:SSAS系列--[08]多维数据(程序展现Cube) 1.引用DLL? 按照之前安装的MS SQLServer的步骤安装完成后,发现在新建的项目中“Add Reference”时居然找不到Mic ...

  2. 【08】css sprite是什么,有什么优缺点

    [08]css sprite是什么?有什么优缺点? 概念:将多个小图片拼接到一个图片中.通过background-position和元素尺寸调节需要显示的背景图案. 优点: 减少HTTP请求数,极大地 ...

  3. 【转】angularjs指令中的compile与link函数详解

    这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下   通常大家在 ...

  4. 【转】AngularJS的$resource

    $http $http服务是基于$q服务的,提供了promise封装,它接受一个配置对象参数,并返回一个promise对象.同时,它还提供了2个方法用来定义Promise回调:success 和 er ...

  5. 【转】AngularJS 取消对 HTML 片段的转义

    今天尝试用 Rails 做后端提供 JSON 格式的数据, AngularJS 做前端处理 JSON 数据,其中碰到 AngularJS 获取的是一段 HTML 文本,如果直接使用 data-ng-b ...

  6. 【经验】Angularjs 中使用 layDate 日期控件

    layDate 控件地址:http://laydate.layui.com/ 前情:原来系统中使用的日期控件是UI bootstrap(地址:https://angular-ui.github.io/ ...

  7. 【转】AngularJS路由和模板

    1. AngularJS路由介绍 AngularJS路由功能是一个纯前端的解决方案,与我们熟悉的后台路由不太一样.后台路由,通过不同的URL会路由到不同的控制器上(controller),再渲染(re ...

  8. 【经验】angularjs 实现带查找筛选功能的select下拉框

    一.背景 对于select的下拉列表,像国家选择这样的功能,全世界那么多国家,一直拉滚动条多辛苦,眼睛也要盯着找,累!so,为优化用户体验,带查找功能的下拉框是非常非常有必要的.都知道jquery里有 ...

  9. 【转】Angularjs Controller 间通信机制

    在Angularjs开发一些经验总结随笔中提到我们需要按照业务却分angular controller,避免过大无所不能的上帝controller,我们把controller分离开了,但是有时候我们需 ...

随机推荐

  1. 移动端html touch事件

    诸如智能手机和平板电脑一类的移动设备通常会有一(capacitive touch-sensitivescreen),以捕捉用户的手指所做的交互.随着移动网络的发展,其能够支持越来越复杂的应用,web开 ...

  2. python中多线程(1)

    一多线程的概念介绍 threading模块介绍 threading模块和multiprocessing模块在使用层面,有很大的相似性. 二.开启多线程的两种方式 1.创建线程的开销比创建进程的开销小, ...

  3. 1051 复数乘法(C#)

    一.题目内容如下: 复数可以写成 ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1:也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角 ...

  4. 最大流增广路(KM算法) HDOJ 2255 奔小康赚大钱

    题目传送门 /* KM:裸题第一道,好像就是hungary的升级版,不好理解,写点注释 KM算法用来解决最大权匹配问题: 在一个二分图内,左顶点为X,右顶点为Y,现对于每组左右连接Xi,Yj有权w(i ...

  5. 题解报告:poj 1321 棋盘问题(dfs)

    Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子 ...

  6. opencv3.3+vs2015调用笔记本摄像头成功

    先上代码 成功图片如下: #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp&g ...

  7. 如何利用sql注入进行爆库

    SQL注入能做什么 在<SQL注入基础>一文介绍了SQL注入的基本原理和实验方法,那接下来就要问一下,SQL注入到底能什么? 估计很多朋友会这样认为:利用SQL注入最多只能获取当前表中的所 ...

  8. NX自动出图 (更新啦)

    1.创建模板类零件图纸 2.创建顶针类零件图纸 3.创建镶件类零件图纸 4.自动创建孔表

  9. 最优化方法系列:SGD、Adam

    整理一下资源,不过最好还是根据书上的理论好好推导一下..... 文章链接:Deep Learning 最优化方法之SGD 72615436 本文是Deep Learning 之 最优化方法系列文章 整 ...

  10. 考试总结(CE???)

    直接开写题解: (由于T1为暴力模拟,不进行整理) T2: 扶苏给了你一棵树,这棵树上长满了幼嫩的新叶,我们约定这棵树的根是 1,每个节 点都代表树上的一个叶子. 如果你不知道什么叫树,你可以认为树是 ...