专栏名称: 前端JavaScript
分享 | 学习 | 交流 | 原创 分享是学习的开始;学习不必要从头开始,是从现在开始;交流能沟通你我,提高你的学识;期待你的加入!!! web前端技术交流,JavaScript,HTML5,CSS3……
目录
相关文章推荐
51好读  ›  专栏  ›  前端JavaScript

Angular开发者指南(五)服务

前端JavaScript  · 公众号  · Javascript  · 2017-03-11 07:38

正文

请到「今天看啥」查看全文


if (msgs.length === 3) {

win.alert(msgs.join('\n'));

msgs = [];

}

};

}]);


protractor.js


it('should test service', function() {

expect(element(by.id('simple')).element(by.model('message')).getAttribute('value'))

.toEqual('test');

});

需要点击三次NOTIFY按钮才会出现弹出框内容

创建服务

应用程序开发人员可以使用AngularJS模块注册服务的名称和服务工厂函数来自由定义自己的服务。

服务工厂函数生成表示对应用程序其余部分的服务的单个对象或函数。 服务返回的对象或函数被注入到指定对服务的依赖性的任何组件(控制器,服务,过滤器或指令)中。

注册服务

服务通过Module API注册到模块。 通常您使用Module factory API注册服务:


var myModule = angular.module('myModule', []);

myModule.factory('serviceId', function() {

var shinyNewServiceInstance;

// 构造shinyNewServiceInstance的工厂函数体

return shinyNewServiceInstance;

});

此时不是注册服务实例,而是一个在调用时将创建此实例的工厂函数。

依赖

服务可以有自己的依赖。 就像在控制器中声明依赖项一样,可以通过在服务的工厂函数签名中指定依赖性来声明它们。

下面的示例模块有两个服务,每个具有各种依赖关系:


var batchModule = angular.module('batchModule', []);


/**

*`batchLog'服务允许消息在内存中排队,并且每50秒刷新到console.log

*/

batchModule.factory('batchLog', ['$interval', '$log', function($interval, $log) {

var messageQueue = [];







请到「今天看啥」查看全文