function(data){console.log('error, ' + data)}); //defer.reject('xx'); defer.resolve('xx'); } 使用的方法...: 要理解这东西,先看看 promise 的链式回调是如何运作的,看下面两段代码的区别: var defer = $q.defer(); var p = defer.promise; p.then(...而 $q.reject() 的作用就是触发后链的 error 回调: var defer = $q.defer(); var p = defer.promise; p.then( function(...resolve() 成功回调 reject() 失败回调 var defer = $q.defer(); var promise = defer.promise; promise.then(function...error, ' + data)}); //defer.reject('xx'); defer.resolve('xx'); promise promise 对象只有 then() 一个方法,注册成功回调函数和失败回调函数
在Promise中,定义了三种状态:等待状态,完成状态,拒绝状态。...关于状态有几个规定: 1 状态的变更是不可逆的 2 等待状态可以变成完成或者拒绝 defer()方法 在$q中,可以使用resolve方法,变成完成状态;使用reject方法,变成拒绝状态。...=utf-8" /> angular.js/1.2.16/angular.min.js"> </...scope, $ q ){ $scope.test = 1;//这个只是用来测试angularjs是否正常的,没其他的作用 var defer1 = $q.defer...console.log("funcA"); return "hello,funA"; } $q.when
可以先看我的第一篇文章 $q 和 promise 的基础理解 $q 和 promise 需要在 angular 中掌握异步的知识,我们需要掌握这几个重要的知识点, http, promise 下面着重讲解一下...$q 的功能和它的 api 的使用。...$q.defer: 预订和延期 假设有一个家具厂,而它有一个VIP客户张先生。...有一天张先生需要一个豪华衣柜,于是,他打电话给家具厂说我需要一个衣柜,回头做好了给我送来,这个操作就叫**$q.defer**,也就是延期,因为这个衣柜不是现在要的,所以张先生这是在发起一个可延期的请求...,它就可以用==$q.when(现有衣柜)==来把这个承诺给张先生,这件事就立即被解决了,皆大欢喜,张先生可不在乎你是从头做的还是现有的成品,只会惊叹于你们的效率之高。
在AngularJS应用中实现认证授权 在每一个严肃的应用中,认证和授权都是非常重要的一个部分。单页应用也不例外。应用并不会将所有的数据和功能都 暴露给所有的用户。...用户需要通过认证和授权来查看应用的某个特定部分,或者在应用中进行特定的行为。为了在应用中对用户进行识别,我们需要让用户进行登录。...在Angular中,我们可以将这个值存在一个服务中,因为服务在客 户端中是一个单体。但是,如果用户刷新了页面,服务中的值将会丢失。...我们可以使用路由选项中的resolve来实现这个功能。...由于主要的工作都搬到了浏览器端,用户的状态也需要存储在客户端。重要的一点是要记住用户的状态也需要的服务器端保存和进行验证,因为骇客很可能慧聪客户端窃取用户的数据。
此外,项目源码用的是Angular JS来开发的,我并不是很熟悉,所以主要是阅读下源码理解其大致的实现流程。...var adb = angular.module('chromeADB', ['ngRoute', 'ngSanitize']); adb.config(function ($routeProvider...host和port进行连接并提供数据读写服务的功能,这里的host和port是指adb-server的host和port,所以一般拿手机连接PC的话,这里host和port通常分别就是127.0.0.1...和5037。...那通过socket发送的是什么内容呢?
/1.4.6/angular.min.js"> /* $http service在Angular中用于简化与后台的交互过程,...其本质上使用XMLHttpRequest或JSONP进行与后台的数据交互。...在与后台的交互过程中,可能会对每条请求发送到Server之前进行预处理(如加入token),或者是在Server返回数据到达客户端还未被处理之前进行预处理(如将非JSON格式数据进行转换);...所以Angular为我们提供了$http拦截器,用来实现上述需求。...它可以用来恢复请求或者有时可以用来撤销请求之前所做的配置,比如关闭遮罩层,显示进度条,激活按钮和输入框之类的。
Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成)和Rejected(已失败)。...要创建一个deferred对象,可以调用defer()方法: var deferred = $q.defer(); //deffered上面暴露了三个方法,以及一个可以用于处理promise的promise...此外,notify 回调可能被调用 0到多次,提供一个进度指示在解决或拒绝(resolve和rejected)之前。...all()方法 当批量的执行某些方法时,就可以使用这个方法。有了all,你就可以并行执行多个异步操作,并且在一个回调中处理所有的返回数据。...console.log("funcA"); return "hello,funA"; } $q.when
1 模块化工具Webpack 1.1 概念简介 1.1.1 WebPack是什么 1 一个打包工具 2 一个模块加载工具 3 各种资源都可以当成模块来处理 4 网站 http...://webpack.github.io/ 如今,越来越多的JavaScript代码被使用在页面上,我们添加很多的内容在浏览器里。...对于模块的组织,通常有如下几种方法: 1 通过书写在不同文件中,使用script标签进行加载 2 CommonJS进行加载(NodeJS就使用这种方式) 3 AMD进行加载(require.js...• 开发便捷,能替代部分 grunt/gulp 的工作,比如打包、压缩混淆、图片转base64等。 ...1.3 Angular模块模块化整改 1.3.1 Html文件整改 1、删除所有Script标签引用的文件,改成在js文件中用require引用; 2、增加dll文件引用; 3
更多内容参考:Angularjs总结 前提 首先需要在页面引入angular和angular-route,注意要在angular-route之前引入angular 在加载完angular才会出现。...); ... })(window, window.angular); 下载可以去官网下载,或者使用bower进行安装。...redirectTo:重定向地址 reloadOnSearch:设置是否在只有地址改变时,才加载对应的模板;search和params改变都不会加载模板 caseInsensitiveMatch:路径区分大小写...使用 在页面中,写入URL跳转的按钮链接 以及 ng-view标签 <a href
目前已经有项目来处理脚本加载, 可以和 AngularJS 一起使用。 模块在加载的过程中什么都没做, 可以按照任意顺序加载, 因此脚本加载器可以使用这个特性进行并发加载。...AngularJS 在 $routeProvider 的文档中, when 方法的 route 参数有这样一个属性: resolve - {Object....views/myView.html', resolve: { deps: function($q, $rootScope) { var defered = $q.defer..., function($q, $rootScope) { // 创建一个延迟执行的 promise 对象 var defered = $q.defer...', 'angular-route'], function (config, loader) { 'use strict'; var app = angular.module('app
今年 6 月,我和 Waterplea 接受了一个有趣的挑战:每天在 Twitter 上写一个 Angular 技巧。Angular 社区对此表示热烈欢迎。...在前端,我们习惯使用很多在任何作用域内都可用的全局对象。我们使用诸如 window、document、fetch 方法和 location 等对象。我们希望能一直见到它们。...s=20 如果你想了解更多有关令牌的信息,并加深对 Angular 依赖注入机制的了解,请查看我在 angular.institute 上关于 DI 的免费章节: https://angular.institute...因为我们使用 RxJS,所以服务可以在其中包含一个 Observable 或 Subject 并对其进行一些数据转换。...s=20 你甚至可以制作自己的 ngFor 替代品 最后一个:Angular 对于 for...of... 之类的指令有特殊的语法。这样,你可以创建自己的 ngFor。
[记录点滴]在Ionic和Android中上传Blob图片 0x00 摘要 本文是开发中的简略记录,具体涉及知识点有:Blob,Ionic,Android和Lua。...起因是因为刚刚看到一篇关于Blob的文章你不知道的 Blob ,突然回忆起来在开发过程中也曾经使用过这种图片,所以就翻了翻代码,整理记录下来。...在 JavaScript 中 Blob 对象表示一个不可变、原始数据的类文件对象,它不一定非得是大量数据,也可以表示一个小型文件的内容。...以下代码做了简略和转换。 0x02 Ionic Ionic上传过程中,主要使用Promise做异步控制,用$http做上传处理。...function uploadPicture(file) { var q = $q.defer(); var url = .....; var data = new
例如使用jquery,必然比没有使用jquery方便很多,所以大部分网站都接入类似的库; 性能优化。包括加载速度、渲染效率; 代码管理。...main.js,这个是由requirejs引入的第一个业务js,主要是配置requirejs; router.js,这个是整个网站/app的路由配置,在实际部署中,可以把main.js和router.js...的写法,这里由于使用requirejs管理全部模块,所以index.html中不需要引入angular等,只是设置了一个带ng-view属性的div,用于充当整个App的视图区域。...第五步,修改angular-route,实现HTML和js打包加载。...敬请期待下一篇:requirejs和backbone http://www.cnblogs.com/kenkofox/p/4648472.html 相关代码可以在github找到:https://github.com
创建项目: 要想使用 npm 来安装 CLI,请打开终端/控制台窗口,并输入下列命令: npm install -g @angular/cli ②创建工作区和初始应用:ng new 文件名 ③启动开发服务器...里,默认的数据绑定是单向的,即Model向View 如果要实现双向绑定,需要使用到ngModel指令 语法: [(ngModel)]='值' ***直接写指令,在angularJS里会报错...:ng-show和*ngIf的区别是什么?...:ng-show和*ngIf的区别是什么?...从Observable的中文名:”可观察的”就能看出,Observable的作用是可以起到类似监听的作用,但它的监听往往都是在跨页面中, 6.组件间通信: 1.父向子 -- @Input装饰器声明输入属性
使用Angular 2,和使用Angular 1相比,有什么优势?...Angular 2中的路由工作原理是什么? 路由是能够让用户在视图/组件之间导航的机制。Angular 2简化了路由,并提供了在模块级(延迟加载)下配置和定义的灵活性。 ...简而言之,EventEmitter是在@ angular/core模块中定义的类,由组件和指令使用,用来发出自定义事件。...通常Observable比Promise更受欢迎,因为它不但提供了Promise特性,还提供了其它特性。使用Observable可以处理0,1或多个事件。你可以在每种情况下使用相同的API。...也欢迎大家在文末留言,交流Angular的使用经验哦!
前面章节我们都是用命令行来操作,如ionic g page person,现在开始会涉及到很多命令操作,可能有些人会记不住命令,或者记不清关键字,可以像我这样,在IDE上装上插件,我这用的是VS Code...因为目前大多插件的异步使用Promise,Observable转Promise比较简单,而Promise转Observable比较麻烦,为了更方便集成,所以把官方推荐的Observable方式转成Promise...方式,大家可基于Observable优点考虑仍沿用Observable也行。...,不容易记忆使用,也容易敲错,为了便于管理Key,用枚举来处理。...返回参数是什么类型?我习惯了书写。 晚了,先写到这里。
您可以通过编辑prefix属性将其更改为首选项的前缀.angular-cli.json,因此ng generate在首次使用前最好先这样做。 所以,我们有一个组件的构造ngOnInit函数和一个函数。...我猜你们至少都知道一些关于承诺和构建异步代码的内容。承诺处理单一事件。POST例如,我们要求浏览器创建一个承诺。RxJS使用Observable来处理事件流。...同时,Observable能够处理每一个事件,实际上有着无数的“承诺”。我们可以通过在这个过程中得到一些错误或者通过退订Observable来解决这个问题。 这里是什么takeWhile?...但是在相同的代码中,我们看到了另一个效果,它ServerFailure使用装饰器参数处理动作dispatch: false。这是什么意思?...使用Angular有什么好处? 使用Angular的主要优点是获得一个完全集成的Web框架,该框架提供了自己的内置解决方案,用于构建组件,路由和使用远程API。 Angular模块如何工作?
组件不应该直接获取或保存数据,它们不应该了解是否在展示假数据。 它们应该聚焦于展示数据,而把数据访问的职责委托给某个服务 b. 服务负责业务数据获取和保存,让组件只需要关注展示 c....Angular CLI 命令 ng generate service 会通过给 @Injectable 装饰器添加元数据的形式 providedIn: 'root', 当你在顶层提供该服务时,Angular...异步处理可以使用回调函数,可以返回 Promise(承诺),也可以返回 Observable(可观察对象) b. angular使用了Rxjs,因此使用Observable,Observable 是...Angular 的最佳实践之一就是在一个独立的顶级模块中加载和配置路由器,它专注于路由功能,然后由根模块 AppModule 导入它 b. ng generate module app-routing...*ngFor 不能直接使用 Observable。 不过,它后面还有一个管道字符(|),后面紧跟着一个 async,它表示 Angular 的 AsyncPipe。
所以很多新手刚开始学习和使用Promise时,如果思路不能转换过来的话,经常会出现一些本末倒置的错误。...#2 不知如何将Promise和forEach结合 这里是大多数人对于 promises 的理解开始出现偏差。...上面的代码是什么意思呢?大体来说,Promise.all()会以一个 promises 数组为输入,并且返回一个新的 promise。...在早期,deferred 在 Q,When,RSVP,Bluebird,Lie等等的 “优秀” 类库中被引入, jQuery 与 Angular 在使用 ES6 Promise 规范之前,都是使用这种模式编写代码...举例来说,Angular的 $q 模块允许你使用 $q.when包裹非 $q 的 promises。因此 Angular 用户可以这样使用 PouchDB promises. ?
领取专属 10元无门槛券
手把手带您无忧上云