首页
学习
活动
专区
工具
TVP
发布

AngularJS factory、 service 和 provider

AngularJS factory、 service 和 provider 初学 AngularJS 时, 肯定会对其提供 factory 、 service 和 provider 感到疑惑, 这三种都是提供服务方式...factory factory 可以认为是设计模式工厂方法, 就是你提供一个方法, 该方法返回一个对象实例, 对于 AngularJS factory 来说, 就是先定义一个对象, 给这个对象添加属性和方法...'MyService', function() { this.greeting = 'Hello from service'; }); controller 拿到对象就是上面代码 this...$get(); 使用 factory、 service 与 provider factory、 service 与 provider 使用起来是一样, 都是通过 AngularJS 依赖注入使用,...启动时进行配置, 从而达到特殊用途, 比如在上面的 provider 可以添加一个 setName 方法, 可以在启动时调用这个方法, 进行一些额外初始化工作: app.provider('MyProvider

74721

AngularJS 服务(Service)

AngularJS 你可以创建自己服务,或使用内建服务。 ---- 什么是服务? 在 AngularJS ,服务是一个函数或对象,可在你 AngularJS 应用中使用。...在很多服务,比如 $location 服务,它可以使用 DOM 存在对象,类似 window.location 对象,但 window.location 对象在 AngularJS 应用中有一定局限性...$location vs window.location window.location $location.service 目的 允许对当前浏览器位置进行读写操作 允许对当前浏览器位置进行读写操作...API 暴露一个能被读写对象 暴露jquery风格读写器 是否在AngularJS应用生命周期中和应用整合 否 可获取到应用生命周期内每一个阶段,并且和$watch整合 是否和HTML5 API无缝整合...: 创建名为hexafy 服务: app.service('hexafy', function() { this.myFunc = function (x) { return

1.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

AngularJS】—— 13 服务Service

AngularJS中有很多服务,常用比如$http,$location等等。...$http使用   AngularJS为我们提供了很多种服务,$http用于发送http请求,动态请求数据。   ...创建自己Service服务   接下来看看如何创建自己服务,创建服务可以通过三种方式,factory,provider和service,但是它们本质都是Provider,只是封装了不同写法而已。...真正实现部分放在 doRequest ,内部就是典型一个AngularJS$http请求了,请求会返回url相应数据。   ...,有下面几点需要注意:   1 它使用场景:由于可以在服务抽取公共调用方法,因此可以把多个控制器相同功能抽取出来,形成一个服务。

1.4K50

AngularJS中使用service,并同步数据

service是单例对象,在应用不同代码块之间共享数据。...对一些公用方法封装到service,然后通过依赖注入在Controller调用,示例代码: 1.创建一个模块: var module = angular.module( "my.new.module...$broadcast( 'books.update' ); } } return service; }]); 3.在Controller调用: 1 var ctrl = [ '...,service数据就可能会在controller调用时候不同步,比如: 定义一个service,用来请求json数据: 1 module.service('VService',['$http',...具体原因我没去深究,大概猜测是异步请求数据原因,因为第二次调用getCapt方法时候s有数据了,所以通过内置服务$q来进行数据同步调用: service这样写: var service={

918100

AngularJS按需加载ocLazyLoad

初学者,有不足地方希望各位指出 一、前言     ocLoayLoad是AngularJS模块按需加载器。一般在小型项目里,首次加载页面就下载好所有的资源没有什么大问题。...但是当我们网站渐渐庞大起来,这样子加载策略让网速初始化速度变得越来越慢,用户体验不好。二来,分模块加载易于团队协作,减低代码冲突。   ...三 、按需加载场景     三、1 路由加载(resolve/uiRouter) 基于uiRouterresolve是在加载controller和template之前所执行一系列操作,它帮助我们初始化我们所要前往那一个视图...因此,我们可以在resolve步骤里面加载我们所需要controller。...模板里面嵌套controller呢?

1.6K80

AngularJS Promise --- $q服务详解

但是有了Promise这种规范,它能帮助开发者用同步方式,编写异步代码,比如在AngularJS可以使用这种方式: deferABC.resolve(xxx) .then(funcSuccess(...小白让舍友带饭() .then(韭菜鸡蛋,西红柿炒鸡蛋) .finally(带包烟) $q服务 q服务是AngularJS自己封装实现一种Promise实现,相对与Kris Kwal's Q要轻量级多...关于状态有几个规定: 1 状态变更是不可逆 2 等待状态可以变成完成或者拒绝 defer()方法 在$q,可以使用resolve方法,变成完成状态;使用reject方法,变成拒绝状态。...其中resolve传入变量或者函数返回结果,会当作第一个then方法参数。...all()方法 这个all()方法,可以把多个primise数组合并成一个。当所有的promise执行成功后,会执行后面的回调。回调参数,是每个promise执行结果。

1.5K90

ServicebindService

最近有用到Activity需要不断Service获取数据,第一个想法肯定就是通过bind回调机制了,有几点概念模糊特此记录下: 单独使用bindService(),unbindService()会经历...2、Service与Activity一样都存在与当前进程主线程,所以,一些阻塞UI操作,比如耗时操作不能放在service里进行,比如另外开启一个线程来处理诸如网络请求耗时操作。...4、关于停止Service,如果service是非绑定,最终当任务完成时,为了节省系统资源,一定要停止service,可以通过stopSelf()来停止,也可以在其他组件通过stopService(...();//得到Service实例 //设置接口回调获取Service数据 myService.setOnDataCallback(new MyService.OnDataCallback...()方法接收到,这个bind就是Activity和Service通信桥梁 //因为在Activity通过这个bind对象可以得到Service实例引用。

32510

AngularJS 多视图应用登录认证

AngularJS 多视图应用登录认证 在 AngularJS 多视图应用, 一般都有实现登录认证需求, 最简单解决方法是结合服务端认证, 做一个单独登录页面, 登录完成之后再跳转回来,...这种方法当然可取, 不过就破坏了单页面应用 (SPA) 体验, 追求完美的开发者肯定不会采用这种方法。...在 AngularJS 应用, 都有一个唯一变量 rootScope 当切换视图时, rootScope 会广播事件 angular // 声明应用程序模块 .module('app', ['ngRoute...$on('$routeChangeStart', onRouteChangeStart); }); 这样, AngularJS 在开始切换视图时 ($routeChangeStart) 会调用 (onRouteChangeStart...) 函数进行检查, 如果要切换路由不允许匿名访问, 则会重定向到路由中定义 /login 对应视图。

2.7K20

用漫画来解说AngularJsPromises

父亲让儿子去获取天气预报,儿子没法立即告诉他,父亲在他等待过程还有些其他事情处理,等他儿子实现了承诺,父亲再回来处理天气问题。当父亲拿到了天气预报,他或者准备去钓鱼,或者选择留在家里。...使用AngularJsthen()函数我们可以指定每次父亲得到结果之后需要做什么。then()函数接受2个函数作为参数:一个用来在承诺完成时候执行,另一个用来在承诺未完成时候执行。...父亲要求儿子去获取天气预报本质是异步,父亲不必干等者儿子回来,因为他还有其他事情做。...相反,父亲通过一个承诺来决定之后三个可能发生(好天气/坏天气/没天气预报)一个。...原文:Promises in AngularJS, Explained as a Cartoon

77210
领券