博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS笔记之创建服务方式比较 : factory vs service vs provider
阅读量:6440 次
发布时间:2019-06-23

本文共 1663 字,大约阅读时间需要 5 分钟。

hot3.png

那么问题来了,Angular 提供了三种方法来创建并注册我们的 service:factory, service 和 provider 。

Factory :

  • factory 就是创建一个对象,为他添加属性,然后把这个对象 return 出来。当你把 service 传进 controller 以后,在 controller 中这个对象的属性就可以通过 factory 使用了。
var app = angular.module('app',[]);app.factory('myFactory',function(){  var test = {};  test.name = "Jason";  test.sayHello = function(){console.log("hello world")};  return test;});app.controller("myCtrl",function($scope,myFactory){ $scope.greet =myFactory.test.sayHello;   //use the attrs of the obj in the factory})
  •  

Service:

  • service 是用 new 关键字实例化的。因此,你应该给 this 添加属性,然后 service 返回 this。你把 service 传进 controller 以后,在 controller 里 this 上的属性就可以用通过 service 来使用了
app.service('myService',function(){    var _artist = "Nelly";    this.getAritist = function(){                         return _artist;                       };});app.controller("myCtrl",function($scope,myService){    $scope.getArtist = myService.getArtist;});
  • Provider :

    Providers 是唯一一种你可以传进 .config() 函数的 service。当你想要在 service 对象启用之前,先进行模块范围的配置,那就应该用 provider。

app.provider("myProvider",function(){    this._artist = " " ;    this.thingFromConfig = " " ;    this.$get = function(){        var that  =  this;        return  {           getArtist : function(){               return that._artist;            },        thingOnConfig : that.thingFromConfig        }   },   thingOnConfig });app.controller("myController",function($scope,myProvider){    $scope.artist = myProvider.getArtist();    $scope.data.thingFromConfig = myProvider.thingOnConfig;});app.config(function(myProviderProvider){    myProviderProvider.thingFromConfig = "This was set in config() " ;})

 

转载于:https://my.oschina.net/u/1778998/blog/781253

你可能感兴趣的文章
WinForm 入口Main方法
查看>>
SQL基础语句
查看>>
java算法2_二分查找法
查看>>
MySQL 5.6 & 5.7最优配置文件模板
查看>>
ffmpeg 怎么用
查看>>
JSP中 request.getRealPath("/xx/yy") 方法提示已经过时的替代方法
查看>>
实战 MDT 2012(六)---基于MAC地址的部署
查看>>
下载视频的一种简便方法
查看>>
C#中所有对象共同的基类是System.Object
查看>>
[鸟哥linux视频教程整理]04_02_Linux 权限及权限管理
查看>>
Linux运维工程师面试题第三套
查看>>
商务智能的需求驱动
查看>>
ThinkPad预装win8系统机型安装win7系统的操作指导
查看>>
JS高效关键字搜索---转
查看>>
PowerShell【变量篇】
查看>>
CSVN部署安装,实现web管理svn
查看>>
10-python-字典
查看>>
Codeforce915C
查看>>
2、内核的配置和移植
查看>>
BZOJ2115:[WC2011] Xor(线性基)
查看>>