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 相关文章推荐
javascript function、指针及内置对象
Feb 19 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
Oct 15 Javascript
JavaScript模板入门介绍
Sep 26 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
Dec 27 Javascript
jQuery模拟黑客帝国矩阵效果实例
Jun 28 Javascript
JS实现网页上随滚动条滚动的层效果代码
Nov 04 Javascript
基于iScroll实现下拉刷新和上滑加载效果
Jul 18 Javascript
深入理解Vue.js源码之事件机制
Sep 27 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
Dec 20 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
微信小程序实现tab页面切换功能
Jul 13 Javascript
详解Java中String JSONObject JSONArray List转换
Nov 13 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
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
浅谈js的异步执行
2016/10/18 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
Django如何配置mysql数据库
2018/05/04 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
Python for i in range ()用法详解
2020/09/18 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
保荐人的岗位职责
2013/11/19 职场文书
电子商务专业推荐信范文
2013/12/02 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
大学生个人学习总结
2015/02/15 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang