一、JQuery与AngularJS

首先,先简单的了解一下JQuery与AngularJS。从源头上来说,两者都属于原生JS所封装成的库,两种为平行关系。

二、Ajax请求与数据遍历打印

这里是Ajax和$http请求的JSON文件概览,默认的路径我们就放在与两者同级的文件夹里。

[
{
"name": "一号",
"age": 17,
"hobby": [
"吃",
"喝"
],
"score":{
"math":78,
"chinese":89
}
},
{
"name": "二号",
"age": 17,
"hobby": [
"喝",
"玩"
],
"score":{
"math":78,
"chinese":89
}
},
{
"name": "三号",
"age": 17,
"hobby": [
"玩",
"乐"
],
"score":{
"math":78,
"chinese":89
}
},
{
"name": "四号",
"age": 17,
"hobby": [
"吃",
"喝",
"玩",
"乐"
],
"score":{
"math":78,
"chinese":89
}
}
]

下面是Ajax请求获取JSON文件的代码。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ajax</title> <script language="JavaScript" src="js/jquery-1.10.2.js"></script> <script type="text/javascript"> $(function(){ $("button").click(function(){ $.ajax({
type:"post",
url:"http://localhost:8080/JSON/h51701.json",
dataType:"JSON",
success:function(data){
console.log(data)
}
}); }) </script> </head>
<body> <button>点击请求JSON文件</button> <div></div> </body>
</html>

如果想要直接遍历取出JSON文件中的各种值,则可以通过post和get,一般我们所用的是post,使用时,只需要吧$ajax这一部分换成以下代码。

$.post("http://localhost:8080/JSON/h51701.json",{},function(data){

                        for(var i = 0 ; i < data.length ; i++){
$("div").append("姓名:"+data[i].name+"<br />");
$("div").append("年龄:"+data[i].age+"<br />");
$("div").append("数学成绩:"+data[i].score.math+"<br />");
$("div").append("语文成绩:"+data[i].score.chinese+"<br />");
$("div").append("爱好:"+data[i].hobby.toString()+"<br /><br />");
} },"json")

在这里,我们一般是采用循环遍历的方法一一取出。

三、$http请求与数据的提取

相较而言,$http的方法更简单粗暴,代码如下。

<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title>$http</title>
</head> <body ng-app="app" ng-controller="ctrl"> <pre>{{data}}</pre> <table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>喜好</th>
<th>数学成绩</th>
<th>语文成绩</th>
<th>总分</th>
</tr>
</thead>
<tr ng-repeat="item in data | orderBy:'score.chinese'">
<td ng-bind="item.name"></td>
<td ng-bind="item.age"></td>
<td ng-bind="item.hobby"></td>
<td ng-bind="item.score.chinese"></td>
<td ng-bind="item.score.math"></td>
<td ng-bind="item.score.chinese + item.score.math"></td>
</tr>
</table> </body> <script src="libs/angular.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
angular.module("app", [])
.controller("ctrl", function($scope,$http) {
//方法一
$http({
method: 'POST',
url: 'h51701.json'
}).then(function successCallback(response) {
// 请求成功执行代码
$scope.res = response;
}, function errorCallback(response) {
// 请求失败执行代码
alert("服务请求失败")
});
//方法二
$http.get("h51701.json").then(function successFunction(a){
$scope.res = a;
})
//方法三
$http.post("h51701.json",{/*传递的参数对象*/}).then(function successFunction(a){
$scope.data = a.data;//从返回的信息中取出需要的数据,为JSON对象(数组)
}) }) </script> </html>

在请求方面,三种方法大致与ajax相同,但是在每一数据的提取方面,AngularJS所提供的ng-repeat提供了非常大的便利。

综上,两者相比较,还是AngularJS提取更方便。但是从现如今的更新上讲,JQuery中的ajax更加稳定。

两强相争,鹿死谁手 — JQuery中的Ajax与AngularJS中的$http的更多相关文章

  1. jQuery AutoComplete在AJAX UpdatePanel环境中PostBack之后无法工作

    前些日子,Insus.NET有实现<ASP.NET MVC使用jQuery实现Autocomplete>http://www.cnblogs.com/insus/p/5638895.htm ...

  2. 从jquery里的$.ajax()到angularjs的$http

    jquery中对ajax的使用做了很多封装,使得我们使用习惯了,反而并不大清楚在请求过程中的一些细节. 在第一次使用angularjs的$http时,后台一直接受不到前端请求的数据,于是小小研究了一下 ...

  3. 一个方法中的ajax在success中renturn一个值,但是方法的返回值是undefind?

    https://segmentfault.com/q/1010000003762379 A页面 console.log(handleData("search_list", &quo ...

  4. 在js中,ajax放在for中,ajax获取得到的变量有误

    先看代码 for(var i=0;i<tds.length;i++){ mui.ajax(url+'api/client/gifts/isSigned', {data :{ sqId:" ...

  5. 使用ionic中的侧边栏以及angularjs中广播的使用

    接着之前的ionic的例子 查看例子:我的第一段ionic代码 demo3.html(黄底内容为增加或修改的内容) <!DOCTYPE html> <html ng-app=&quo ...

  6. AngularJS学习--- AngularJS中XHR(AJAX)和依赖注入(DI) step5

    前言:本文接前一篇文章,主要介绍什么是XHR,AJAX,DI,angularjs中如何使用XHR和DI. 1.切换工具目录 git checkout -f step- #切换分支 npm start ...

  7. django中的ajax组件

    目录 django中的ajax 向服务器发送请求的途径 Ajax的特点 基于jquery实现的ajax请求 利用ajax实现计算器 利用ajax实现登陆认证 利用form表单进行文件上传 利用ajax ...

  8. Angularjs 中使用指令绑定点击事件

    项目中,模板中的菜单是jQuery控制的,在Angularjs中就运行不到了,因为菜单项是ng-repeat之后的. 如html <ul id="main-menu"> ...

  9. 转: 理解AngularJS中的依赖注入

    理解AngularJS中的依赖注入 AngularJS中的依赖注入非常的有用,它同时也是我们能够轻松对组件进行测试的关键所在.在本文中我们将会解释AngularJS依赖注入系统是如何运行的. Prov ...

随机推荐

  1. ABCD多选正则表达式

    正则表达式: 4个选项,可单选可多选不允许重复 ABCD正则: regexp : /^(?!.*((A.*){2,}|(B.*){2,}|(C.*){2,}|(D.*){2,})$)[A-D]{1,4 ...

  2. grid实例(Asp.net)

    <link href="../../js/jqGrid/css/ui.jqgrid.css" rel="stylesheet" type="te ...

  3. Android -- Android下的NDK开发(一)

    1,NDK是什么?为什么要进行NDK开发? NDK:Native Development Kit.Android应用运行在Dalvik虚拟机中.NDK允许开发人员使用本地代码语言(例如C和C++)实现 ...

  4. ADO.NET 获取SQL SERVER数据库架构信息

    1.确定可用字段数目 sqlDataReader类提供了FieldCount属性,可确定查询反悔了多少个字段. 2.确定返回行的数目 sqlDataReader中没有指示可用行的属性. 3.确定字段的 ...

  5. CSS清除float浮动

    一.浮动产生原因   -   TOP 一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了. 本来两个黑色对象盒子是在 ...

  6. Spring Boot启动过程(七):Connector初始化

    Connector实例的创建已经在Spring Boot启动过程(四):Spring Boot内嵌Tomcat启动中提到了: Connector是LifecycleMBeanBase的子类,先是设置L ...

  7. java运算符 与(&)、非(~)、或(|)、异或(^)

    最近看HashMap源码,遇到了这样一段代码: static final int hash(Object key) { int h; return (key == null) ? 0 : (h = k ...

  8. AOJ/搜索递归分治法习题集

    ALDS1_4_A-LinearSearch. Description: You are given a sequence of n integers S and a sequence of diff ...

  9. hibernate 多对多关系总结

    hibernate中,对对象关系的映射处理估计是最让人迷惑和头疼的,特别是cascade和inverse属性的使用,不知已经杀死了我多少个脑细胞了,好记性永远比不上烂笔头,为了能节省自己的脑细胞,降低 ...

  10. Android NDK开发之从Java与C互调中详解JNI使用(一)

    生活 这一个礼拜过得真的是苦不堪言,上周因为打球脚踝直接扭伤,肿的想猪蹄一样,然后休息几天消肿了,可以缓慢龟速的行走了,然而五一回来上班第一天,上班鞋子还能穿上,下班脚已插不进鞋子里面了,好吧,又肿回 ...