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 相关文章推荐
不用ajax实现点击文字即可编辑的方法
Dec 16 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
Apr 16 Javascript
jquery随意添加移除html的实现代码
Jun 21 Javascript
20款效果非常棒的 jQuery 插件小结分享
Nov 18 Javascript
轻松实现js图片预览功能
Jan 18 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
Nov 22 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
Mar 08 Javascript
利用jsonp与代理服务器方案解决跨域问题
Sep 14 Javascript
react-native-fs实现文件下载、文本存储的示例代码
Sep 22 Javascript
使用node.js实现微信小程序实时聊天功能
Aug 13 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
Jan 18 Javascript
基于JavaScript实现简单扫雷游戏
Jan 02 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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
php报错502badgateway解决方法
2019/10/11 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
Python类的用法实例浅析
2015/05/27 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
python写日志文件操作类与应用示例
2019/07/01 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
物业招聘计划书
2014/01/10 职场文书
部队领导证婚词
2014/01/12 职场文书
函授本科自我鉴定
2014/02/04 职场文书
幼儿发展评估方案
2014/06/11 职场文书
海洋科学专业求职信
2014/08/10 职场文书
远程培训的心得体会
2014/09/01 职场文书
委托培训协议书
2014/11/17 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
goland设置颜色和字体的操作
2021/05/05 Golang
Java实现注册登录跳转
2022/06/16 Java/Android