angularjs提供的$q服务是对Promises规范的一个实现。$q服务可以把一段异步的代码封装成同步的样式。 为啥是样式,因为异步还是异步,它并不会柱塞代码,只是看起来像同步代码。...其实把ajax请求改写成promise并不能体现$q的威力。 改写后代码跟原来的代码没有太大的差别。...no promise: getName(id,function(){},function()); promise: getName(id).then(function(){},function(){})...; promise形式只是把2个回掉提到了then方法里,只是看起来更同步了一点而已。...其实$http服务本身就是通过$q来实现的promise,所以当你使用$q来做ajax的时候已经非常promise了。
一、什么是Promise Promise是对象,代表了一个函数最终可能的返回值或抛出的异常,就是用来异步处理值的。...二、为什么使用Promise 有了Promise对象,就可以把异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供了统一的接口,使得控制异步操作更加容易。...; } } }]) }); 讲一下$q服务 q服务是AngularJS中自己封装实现的一种Promise实现。...3.Promise API 当创建 deferred 实例时会创建一个新的 promise 对象,并可以通过 deferred.promise 得到该引用。...promise对象 when() 传入一个不确定的参数,如果符合Promise标准,就返回一个promise对象。
先说说什么是Promise,什么是$q吧。Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered。...但是有了Promise这种规范,它能帮助开发者用同步的方式,编写异步的代码,比如在AngularJS中可以使用这种方式: deferABC.resolve(xxx) .then(funcSuccess(...小白让舍友带饭() .then(韭菜鸡蛋,西红柿炒鸡蛋) .finally(带包烟) $q服务 q服务是AngularJS中自己封装实现的一种Promise实现,相对与Kris Kwal's Q要轻量级的多...,返回一个promise对象 when() 传入一个不确定的参数,如果符合Promise标准,就返回一个promise对象。...myAppModule.controller("myctrl",["$scope","$q",function($scope, $ q ){ $scope.test = 1;//这个只是用来测试angularjs
AngularJS 扩展了 HTML AngularJS 通过 ng-directives扩展了HTML ng-app 指令定义一个 AngularJS 应用程序。 若不声明,将直接显示表达式。...AngularJS 服务(service) 在 AngularJS 中,服务是一个函数或对象,可在 AngularJS 应用中使用。 7.1....AngularJS 选择框(select) AngularJS 可以使用数组或对象创建一个下拉列表选项。 8.1....AngularJS HTML DOM AngularJS 为 HTML DOM 元素的 属性 提供了绑定应用数据的指令。...AngularJS 实例 <!
怀着激动与忐忑的心情,开始了学习AngularJS的旅程,很久之前就听说了这个前端框架,但是由于自己一直没有从事相关的工作,因此也没有进行学习。...这次正好学习AngularJS,直接复习一下前端的知识。目前这里还是弱点,慢慢深入的学习。 AngularJS是Google的优秀的前端框架,目前已经应用于多个产品。 ...AngularJs相对于其他的框架来说,有一下的特性: 1 MVVM 2 模块化 3 自动化双向数据绑定 4 语义化标签 5 依赖注入 由于很多概念都不了解,这些特性也无法理解。...通过简单的学习,大致了解了AngularJS的语法以及使用,包括如下的内容: 1 表达式 支持普通的JS表达式,表达式通过{{}}使用。...p>姓名: 你输入的为: {{ firstName }} ng-app 定义AngularJS
前一篇了解了AngularJS的一些简单的使用,这里继续跟着w3c学习一下剩下的内容。 ...本篇根据w3cschool.cc继续学习AngularJS剩余的内容,包括: 1 事件 2 模块 3 表单 4 数据验证 5 bootstrap CSS风格 6 include包含其他页面...$scope.myVar; }; } 关于AngularJS的模块 模块定义了用户的应用,所有的控制器属于一个模块。之前使用的ng-app就是模块的定义。 ...src="myCtrl.js"> 对于控制器,也可以通过模块来定义声明: <script src="//www.w3cschool.cc/try/<em>angularjs</em>...关于<em>AngularJS</em>表单 表单是web中重要的组成部分,如下面样例所示,可以很方便的获取到form中的数据 <div ng-app="" ng-controller="formController
scope:单个controller的作用域。可以直接在某controller下的页面引用scope下的变量 rootScope:多个controller作...
我们可以将传给then函数和新Promise的resolve一起push到前一个Promise的callbacks数组中,达到承前启后的效果: 承前:当前一个Promise完成后,调用其resolve变更状态...如果返回的结果是个Promise,则需要等它完成之后再出发新Promise的resolve,所以可在其结果的then里调用新Promise的resolve then(onFulfilled, onReject...这个方法返回一个新的Promise对象 遍历传入的参数,用Promise.resolve()将参数“包一层”,使其变成一个Promise对象 参数所有回调成功才是成功,返回值数组与参数顺序一致 参数数组其中一个失败...,则触发失败状态,第一个触发失败状态的Promise错误信息作为Promise.all的错误信息 function promiseAll(promises){ return new Promise...因为Promise的状态只能改变一次,那么我们只需要把Promise.race中产生的Promise对象的resolve,注入到数组中的每一个Promise实例中的回调函数即可。
<script type="text/javascript" src="angular.min.js"></script>
$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。...$http.delete $http.jsonp $http.patch 读取 JSON 文件 以下是存储在web服务器上的 JSON 文件: https://www.runoob.com/try/angularjs...$http AngularJS $http 是一个用于读取web服务器上数据的服务。...通用方法实例 AngularJS1.5 以上版本 - 实例 var app = angular.module('myApp', []); app.controller('siteCtrl',...AngularJS 应用通过 ng-app 定义。应用在 中执行。 ng-controller 指令设置了 controller 对象 名。
现在你可以在 AngularJS 应用中添加控制器,指令,过滤器等。...完整的指令内容可以参阅 AngularJS 参考手册。...AngularJS 模块让所有函数的作用域在该模块下,避免了该问题。 ---- 什么时候载入库? 在我们的实例中,所有 AngularJS 库都在 HTML 文档的头部载入。...在我们的多个 AngularJS 实例中,您将看到 AngularJS 库是在文档的 区域被加载。...另一个解决方案是在 元素中加载 AngularJS 库,但是必须放置在您的 AngularJS 脚本前面: AngularJS 实例 <!
最近在开发过程中,发现一个问题,在使用angularjs的ng-repeat遍历过程中,如果遍历的数组中包含相同的项,则会抛错。 如下例: <!
Promise.png Promise Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大 对象的状态不受外界影响。...Promise.race() Promise.race方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例 只要其中之中有一个实例率先改变状态,状态就跟着改变 const p =...Promise.race([p1, p2, p3]); Promise.resolve() 有时需要将现有对象转为 Promise 对象,Promise.resolve方法就起到这个作用 参数是一个...Promise 实例,该实例的状态为rejected 应用 我们可以将图片的加载写成一个Promise,一旦加载完成,Promise的状态就发生变化。...Promise.try() Promise.try就是模拟try代码块,就像promise.catch模拟的是catch代码
Promise构造函数执行时立即调用executor函数,resolve和reject两个函数作为参数传递给executor(executor函数在Promise返回所建promise实例对象前被调用)...executor内部通常会执行一些异步操作,一旦异步操作执行完毕(成功/失败)要么调用resolve函数来将promise状态改成fulfilled,要么将promise函数将状态改为rejected。...---- 2.描述 promise对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你对异步操作的成功和失败分别绑定对应的处理方法。...一个promise有以下几种状态: pending :初始状态 fulfilled:操作成功完成 rejected: 操作失败 ---- 3.创建Promise 想要某个函数拥有promise函数...,只需让其返回一个promise即可 function myAsyncFun(url){ return new Promise((resolve, reject)=>{ const xhr
---- AngularJS 全局 API AngularJS 全局 API 用于执行常见任务的 JavaScript 函数集合,如: 比较对象 迭代对象 转换对象 全局 API 函数使用 angular...注意:自 AngularJS 1.7 之后移除 angular.lowercase 和 angular.uppercase 方法, 改为 angular.$$lowercase 和 angular....$$uppercase($scope.x1); }); ? angular.isString() AngularJS API<div ng-app="myApp" ng-controller
本章节我们将为大家介绍 AngularJS 路由。 AngularJS 路由允许我们通过不同的 URL 访问不同的内容。...通过 AngularJS 可以实现多视图的单页 Web 应用(single page web application,SPA) 注意 Angular1.6 之前的版本是通过# + 标记实现路由。...AngularJS 路由就通过 #! + 标记 帮助我们区分不同的逻辑页面并将不同的页面绑定到对应的控制器上。...DOCTYPE html> AngularJS 路由实例 - 菜鸟教程 <script src="...4、配置 $routeProvider,<em>AngularJS</em> $routeProvider 用来定义路由规则。
AngularJS简介 AngularJS是一个JavaScript矿建,他是一个JavaSscript编写的库。可以通过标签添加到HTML页面。...AngularJS属性以ng-开头,但是您可以使用data-ng-来让网页对HTML5有效。 什么是AngularJS?...AngularJS 可以克隆和重复 HTML 元素。 AngularJS 可以隐藏和显示 HTML 元素。 AngularJS 可以在 HTML 元素”背后”添加代码。...AngularJS 支持输入验证。 AngularJS 表达式 AngularJS 表达式写在双大括号内:{ { expression }}。...实例 { { 5 + 5 }} 或 { { firstName + ” ” + lastName }} AngularJS 应用 AngularJS 模块(Module) 定义了 AngularJS
AngularJS 通过被称为指令的新属性来扩展 HTML。 AngularJS 通过内置的指令来为应用添加功能。 AngularJS 允许你自定义指令。...AngularJS 指令 AngularJS 指令是扩展的 HTML 属性,带有前缀ng-。 ng-app指令初始化一个 AngularJS 应用程序。 ng-init指令初始化应用程序数据。...完整的指令内容可以参阅?AngularJS 参考手册。...AngularJS 实例 在输入框中尝试输入: ? ? 姓名: ? ? 你输入的为: {{ firstName }} 尝试一下 ? ng-app指令告诉 AngularJS, 元素是 AngularJS...AngularJS 中的数据绑定,同步了 AngularJS 表达式与 AngularJS 数据。 {{ firstName }}是通过ng-model="firstName"进行同步。
一、AngularJS是什么?...AngularJS,简称:ng 它是一款非常优秀的前端高级JS框架 由Misko Hevery等人创建 2009年被Google公司收购,用于其多款产品 有一个全职的开发团队继续开发和维护这个库 这个框架可以轻松构建...然后发送ajax异步请求,将服务端返回的数据渲染到浏览器页面上 三、AngularJS四个特性 MVC(我更倾向于MVVM) 模块化 自动化双向数据绑定 指令系统 四、AngularJS的发展趋势 当前热门前端框架...当前热门前端框架:vue、react 虽然AngularJS正在走向没落,但是我们要知道它背后所带来的价值。
领取专属 10元无门槛券
手把手带您无忧上云