AngularJS获取json数据的方法详解


Posted in Javascript onMay 27, 2017

本文实例讲述了AngularJS获取json数据的方法。分享给大家供大家参考,具体如下:

学习了这么多天的AngularJS,今天想从实战的角度和大家分享一个简单的Demo--用户查询系统,以巩固之前所学知识。功能需求需要满足两点 1.查询所有用户信息,并在前端展示 2.根据id查询用户信息,展示在前端。Ok,需求很简单,那么我们就开始实现所提的功能需求。

代码框架

前端的代码通常包含三部分:html, css, 和JavaScript,我们使用html编写视图文件,css来进行视图样式控制,JS来实现控制器代码。本文的重点在于AngularJS的回顾学习,使用简单的html视图即可,不会涉及很炫的CSS代码编写。本例的代码的文件目录结构很简单,如下图所示,分为简单的两层目录,UserMgt为整个Demo的包名,JS目录用于存储第三方js代码如angular.js,controller用于存储我们的控制器代码,tml目录存储html前端文件, conf中用于存储配置文件。
----------UserMgt
-------------JS
-------------controller
-------------tml
-------------conf

Code

本例中我们引入angular.js和angular-route.js v1.2.20文件,放在我们的JS目录下。angularJS自身提供的route使用不够方便,我们使用第三方的angular-route框架进行路由分配。首先我们需要编写我们前端的显示界面。

1. index.html,代码如下所示

<!DOCTYPE html>
<!--定义AngularJS app-->
<html ng-app="UserMgt">
<head>
  <meta charset="utf-8"/>
  <title>user mgt demo </title>
</head>
<body>
<h1>用户管理Demo</h1>
<!--使用ng-show,表明我们使用路由控制来管理页面之间的跳转
-->
<div ng-view>
  loading...
</div><!--视图模板容器-->
<!--引入ng-app所需的js文件-->
<script type="text/javascript" src="../js/angular.js"></script>
<script type="text/javascript" src="../js/angular-route.js"></script>
<script type="text/javascript" src="../js/controller/mgt_controller.js"></script>
</body>
</html>

2.detail.html, 用于显示一条用户的数据信息,代码如下所示

<table border="1">
  <tr>
    <td>用户名</td>
    <!--使用ng-model绑定item对象的username属性-->
    <td><input type="text" ng-model="item.username"/></td>
  </tr>
  <tr>
    <td>男</td>
    <!--使用ng-model绑定item对象的gender属性-->
    <td><input type="text" ng-model="item.gender"/></td>
  </tr>
  <tr>`
    <td>邮箱</td>
    <!--使用ng-model绑定item对象的email属性-->
    <td><input type="text" ng-model="item.email"/></td>
  </tr>
  <tr>
  </tr>
</table>

3. list.html用于显示所有数据,code很简单如下所示

<table border="1"> 
  <tr>
  <!--设置表头-->
    <td>用户名</td>
    <td>性别</td>
    <td>邮箱</td>
  </tr>
  <!--使用ng-repeat,遍历所有的user-->
  <tr ng-repeat="user in users"> 
      <td>{{user.username}}</td>
    <td>{{user.gender}}</td>
    <td>{{user.email}}</td>
  </tr>
</table>

4. mgt_controller.js

<!--定义UserMgt Ajs模块,模块依赖ngRoute-->
var umService = angular.module('UserMgt', ['ngRoute']);
<!--路由定义-->
umService.config(
  function ($routeProvider) {
    $routeProvider
      <!--项目打开默认调到list.html页面,绑定ListController进行相应的控制-->
      .when('/', {
        controller: ListController,
        templateUrl: '../tml/list.html'
      })
      <!--定义访问url-->
      .when('/get/:id', {
        <!--定义绑定的控制器-->
        controller: GetController,
        <!--定义跳转的页面-->
        templateUrl: "../tml/detail.html"
      }) 
      .otherwise({
        <!--其他情况,指定url跳转-->
        redirectTo: '/'
      });
  }
)
<!--ListController定义-->
function ListController($scope, $http) {
  <!--获取本地json资源文件-->
  $http.get('../conf/user.json').success(function (data) {
    <!--浏览器console端口打印读取的数据-->
    console.log(data);
    $scope.users = data;
  });
}
<!--GetController控制器定义-->
function GetController($scope, $http, $routeParams) {
  var id = $routeParams.id;
  <!--获取本地json资源文件-->
  $http.get('../conf/user.json').success(function (data) {
    console.log(data);
    $scope.item = data[id];
  });
}

5. user.json中json中存储如下的数据:

[
  { "id": 1, "username": "situ", "gender": "男", "email": "gao_st@126.com" },
  { "id": 2, "username": "wb", "gender": "女", "email": "wb@126.com" },
  { "id": 3, "username": "lml", "gender": "男", "email": "lml@126.com" },
  { "id": 4, "username": "wjd", "gender": "女", "email": "wjd@126.com" },
  { "id": 5, "username": "lyl", "gender": "男", "email": "lyl@126.com" },
  { "id": 6, "username": "wjh", "gender": "女", "email": "wjh@126.com" }
]

Result

1. 展示所有用户信息

AngularJS获取json数据的方法详解

2. 获取某一用户信息

AngularJS获取json数据的方法详解

Javascript 相关文章推荐
ppk谈JavaScript style属性
Oct 10 Javascript
JavaScript 乱码问题
Aug 06 Javascript
几个比较经典常用的jQuery小技巧
Mar 01 Javascript
javascript采用数组实现tab菜单切换效果
Dec 12 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
Dec 31 Javascript
使用jQuery在对象中缓存选择器的简单方法
Jun 30 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
Mar 10 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
May 25 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
Jun 13 Javascript
详解ECharts使用心得总结
Dec 06 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
JavaScript对象的特性与实践应用深入详解
Dec 30 Javascript
vue中用H5实现文件上传的方法实例代码
May 27 #Javascript
详解vue2.0脚手架的webpack 配置文件分析
May 27 #Javascript
详解如何使用webpack打包Vue工程
May 27 #Javascript
Jquery中attr与prop的区别详解
May 27 #jQuery
angular使用post、get向后台传参的问题实例
May 27 #Javascript
AngularJS中使用ngModal模态框实例
May 27 #Javascript
angularJS模态框$modal实例代码
May 27 #Javascript
You might like
PHP自定义大小验证码的方法详解
2013/06/07 PHP
php随机取mysql记录方法小结
2014/12/27 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
浅谈javascript中return语句
2015/07/15 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
如何通过JS实现日历简单算法
2020/10/14 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
Python xlwt模块使用代码实例
2020/06/10 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
书法培训心得体会
2014/01/05 职场文书
面试自我介绍演讲稿
2014/04/29 职场文书
中等生评语大全
2014/05/04 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
乡镇干部个人整改措施思想汇报
2014/10/10 职场文书
护理工作个人总结
2015/03/03 职场文书
2016年会开场白台词
2015/06/01 职场文书
Python集合的基础操作
2021/11/01 Python
我的收音机情缘
2022/04/05 无线电