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 相关文章推荐
javascript form 验证函数 弹出对话框形式
Jun 23 Javascript
jquery uaMatch源代码
Feb 14 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
Oct 18 Javascript
js截取字符串的两种方法及区别详解
Nov 05 Javascript
jQuery中prev()方法用法实例
Jan 08 Javascript
JavaScript日期时间与时间戳的转换函数分享
Jan 31 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
js实现新年倒计时效果
Dec 10 Javascript
vue图片加载与显示默认图片实例代码
Mar 16 Javascript
VuePress 快速踩坑小结
Feb 14 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
Apr 04 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
Jan 16 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网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
原生js代码能实现call和bind吗
2019/07/31 Javascript
Python获取远程文件大小的函数代码分享
2014/05/13 Python
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
Python 含参构造函数实例详解
2017/05/25 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
python脚本开机自启的实现方法
2019/06/28 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
PHP如何自定义函数
2016/09/16 面试题
法学毕业生自我鉴定
2013/11/08 职场文书
优秀技术工人先进材料
2014/02/17 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
2014年社区工作总结
2014/11/18 职场文书
MYSQL 运算符总结
2021/11/11 MySQL
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers