AngularJS读取JSON及XML文件的方法示例


Posted in Javascript onMay 25, 2017

本文实例讲述了AngularJS读取JSON及XML文件的方法。分享给大家供大家参考,具体如下:

<!doctype html>
<meta charset="UTF-8">
<html ng-app='routingDemoApp'>
<head>
 <title>AJAX and promise</title>
 <link href="bootstrap.min.css" rel="external nofollow" rel="stylesheet">
 <link href="self.css" rel="external nofollow" rel="stylesheet">
</head>
<body >
<div class="panel panel-default" ng-controller="AjaxJson"> <!--创建控制器-->
 <div class="panel-body">
  <table class="table table-striped table-hover">
   <thead>
   <tr>
    <td>名</td>
    <td>种类</td>
    <td>价格</td>
    <td>保质期</td>
   </tr>
   </thead>
   <tbody>
   <tr ng-hide="products.length">
    <td colspan="4" class="text-center">没有数据</td>
     <!--当没有数据的时候,显示这行,有数据的时候,隐藏。-->
   </tr>
   <tr ng-repeat="item in products"> <!--将数据放到item里面,逐一读取-->
    <td ng-bind="item.name"></td>
    <td ng-bind="item.category"></td>
    <td ng-bind="item.price"></td>
    <td ng-bind="item.expiry"></td>
   </tr>
   </tbody>
  </table>
  <p><button ng-click="LoadJson()">加载JSON数据</button></p><!--触发函数-->
 </div>
</div>
<div class="panel panel-default" ng-controller="AjaxXml">
 <div class="panel-body">
  <table class="table table-striped table-hover">
   <thead>
   <tr>
    <td>名</td>
    <td>种类</td>
    <td>价格</td>
    <td>保质期</td>
   </tr>
   </thead>
   <tbody>
   <tr ng-hide="products.length">
    <td colspan="4" class="text-center">没有数据</td>
   </tr>
   <tr ng-repeat="item in products">
    <td ng-bind="item.name"></td>
    <td ng-bind="item.category"></td>
    <td ng-bind="item.price"></td>
    <td ng-bind="item.expiry"></td>
   </tr>
   </tbody>
  </table>
  <p><button ng-click="LoadXml()">加载xml数据</button></p>
 </div>
</div>
<script src="angular.min.js"></script>
<script src="angular-ui-router.js"></script>
<script src="ajax2.js"></script>
</body>
</html>
/*js*/
var app=angular.module("routingDemoApp",[]);
app.controller("AjaxJson",function($scope,$http){
 $scope.LoadJson=function(){
  $http.get("json.json")
   .success(function(data){
    $scope.products = data;
   })
   .error(function(){
    alert("出错")
   });
 };
});
app.controller("AjaxXml",function($scope,$http){
 $scope.LoadXml = function(){
  $http.get("xml.xml")
   .success(function(data){
    $scope.products = [];
    var productsElements = angular.element(data.trim()).find("product");
    for(var i=0;i<productsElements.length;i++){
     var product = productsElements.eq(i);
     $scope.products.push({
      name:product.attr("name"),
      category:product.attr("category"),
      price:product.attr("price"),
      expiry:product.attr("expiry")
     });
    }
   })
   .error(function(){
    alert("错误");
   })
 };
});
/*json*/
[
 {"name":"apple","category":"fruit","price":"1.5","expiry":10},
 {"name":"banana","category":"fruit","price":"1.3","expiry":14},
 {"name":"pears","category":"fruit","price":"1.2","expiry":15},
 {"name":"tuna","category":"fish","price":"1.0","expiry":16}
]

 

/*xml*/
<products>
 <product name="apple" category="fruit" price="1.5" expiry="10" />
 <product name="banana" category="fruit" price="14" expiry="14" />
 <product name="pears" category="fruit" price="1.3" expiry="13" />
 <product name="tuna" category="fish" price="1.2" expiry="12" />
</products>

JSON:

1)配置对应的控制器,将scope和http服务注入该控制器中。

2)使用$http.get(),把将要读取的数据文件的url写入。

3)使用回调函数,成功时,将所得的data赋给$scope作用域下的变量products。

4)由前台使用no-repeat指令进行遍历逐一取出数据。

XML:

1)配置对应的控制器,将$scope和http服务注入该控制器中。

2)使用$http.get(),把将要读取的数据文件的url写入。

3)使用回调函数,在success里面进行成功读取XML数据时的操作。

4)定义一个$scope创建的作用域下的(也就会前台可以访问)数组变量products,后面会将读取到的数据逐一插入到里面。

5)定义一个数据变量productElements,将XML文件里面的<product> 里的信息赋值给他。这里使用了trim()方法,原因是使用JS读取XML文件时前后会出现许多空字符。trim()方法可以将空字符去除。

6)使用for循环,将变量productElements里面每个<product> 的内容都插入到之前定义好的数组变量products里面。

7)由前台使用no-repeat指令进行遍历逐一取出数据。

Javascript 相关文章推荐
jquery ajax 登录验证实现代码
Sep 23 Javascript
js获取客户端外网ip的简单实例
Nov 21 Javascript
优化RequireJS项目的相关技巧总结
Jul 01 Javascript
JS验证IP,子网掩码,网关和MAC的方法
Jul 02 Javascript
使用JQuery 加载页面时调用JS的实现方法
May 30 Javascript
浅析Bootstrap表格的使用
Jun 23 Javascript
jQuery基于ajax操作json数据简单示例
Jan 05 Javascript
js仿微信公众平台打标签功能
Apr 08 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
vue将毫秒数转化为正常日期格式的实例
Sep 16 Javascript
解决百度Echarts图表坐标轴越界的方法
Oct 17 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 05 Javascript
bootstrap+jQuery实现的动态进度条功能示例
May 25 #jQuery
基于VUE选择上传图片并页面显示(图片可删除)
May 25 #Javascript
jQuery滚动插件scrollable.js用法分析
May 25 #jQuery
Angular2学习教程之TemplateRef和ViewContainerRef详解
May 25 #Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 #Javascript
vue-router实现webApp切换页面动画效果代码
May 25 #Javascript
Angular 2.x学习教程之结构指令详解
May 25 #Javascript
You might like
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
laravel自定义分页效果
2017/07/23 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
Python和Bash结合在一起的方法
2020/11/13 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
2014年资料员工作总结
2014/11/18 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
Java设计模式中的命令模式
2022/04/28 Java/Android