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中的继承实例代码
Apr 27 Javascript
一个JavaScript函数把URL参数解析成Json对象
Sep 24 Javascript
JavaScript语言对Unicode字符集的支持详解
Dec 30 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
Nov 16 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
Dec 19 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
Jun 20 Javascript
JS开发中基本数据类型具体有哪几种
Oct 19 Javascript
Vue中render函数的使用方法
Jan 31 Javascript
微信小程序分享海报生成的实现方法
Dec 10 Javascript
Node.js console控制台简单用法分析
Jan 04 Javascript
利用Webpack实现小程序多项目管理的方法
Feb 25 Javascript
微信小程序实现点击效果
Jun 21 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/11/12 PHP
php实现上传图片文件代码
2015/07/19 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
2014/03/06 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
django实现分页的方法
2015/05/26 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Python Series从0开始索引的方法
2018/11/06 Python
python tkinter组件摆放方式详解
2019/09/16 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
构建高效课堂实施方案
2014/03/13 职场文书
个人校本研修方案
2014/05/26 职场文书
节能环保口号
2014/06/12 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
儿园租房协议书范本
2014/12/02 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技
Redis数据同步之redis shake的实现方法
2022/04/21 Redis