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 相关文章推荐
asp 的 分词实现代码
May 24 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
Aug 07 Javascript
Jquery实现的角色左右选择特效
May 21 Javascript
js创建对象的方式总结
Jan 10 Javascript
辨析JavaScript中的Undefined类型与null类型
May 26 Javascript
JS Array创建及concat()split()slice()的使用方法
Jun 03 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
web前端vue实现插值文本和输出原始html
Jan 19 Javascript
ndm:NPM的桌面GUI应用程序
Oct 15 Javascript
js实现图片跟随鼠标移动效果
Oct 16 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
Jan 21 Javascript
vue 点击其他区域关闭自定义div操作
Jul 17 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 str_pad 函数用法简介
2009/07/11 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
用jquery仿做发微博功能示例
2014/04/18 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
机器学习python实战之手写数字识别
2017/11/01 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
Django组件content-type使用方法详解
2019/07/19 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
银行职员个人的工作自我评价
2014/02/15 职场文书
警察群众路线整改措施
2014/09/26 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
大学生年度个人总结
2015/02/15 职场文书
2015年七夕情人节感言
2015/08/03 职场文书