博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angularjs中provider,factory,service的区别和用法
阅读量:5340 次
发布时间:2019-06-15

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

angularjs中provider,factory,service的区别和用法

provider->factory->service

都能提供service,但是又有差别

service

第一次被注入时实例化,只实例化一次,整个应用的生命周期中是个单例模式,可以用来在controller之间传递数据

//使用new关键字实例化,所以直接使用this定义service//不知道为啥就看看js中的this怎么玩的.service('myService', ['', function() {    this.getName = function() {        return 'CooMark';    }}])

factory

//返回一个对象,可能这是你喜欢的方式,使用call的方式实例化,其他的和service一样//Internally this is a short hand for $provide.provider(name, {$get: $getFn}).angular.module('app', []).factory('myFactory', ['', function() {    return {        getName: function() {            return 'CooMark';        },        getTitle: function() {            return 'Engineer'        }    }}])

provider

这是唯一能注入到config的service,这样定义的service在你开始注入之前就已经实例化,开发共享的模块的时候常常使用它,能够在使用之前进行配置,比如你可能需要配置你的服务端的url

//两种形式的参数,都是为了得到一个带有$get属性的对象// Object: then it should have a $get method. The $get method will be invoked using $injector.invoke() when an instance needs to be created.// Constructor: a new instance of the provider will be created using $injector.instantiate(), then treated as object.angular.module('app', []).config(['$provider', function() {    $provider.provider('myProvider', function() {        this.$get = function() {            return {                getName: function() {                    return 'CooMark';                }            }        }    });    $provider.provider('myProvider', {        $get: function() {            return {                getName: function() {                    return 'CooMark';                }            }        }    });}])

213419-20161025090643656-1079892355.png

参考:

转载于:https://www.cnblogs.com/wancy86/p/5995389.html

你可能感兴趣的文章
SQL自定义排序 ORDER BY
查看>>
Modal模态框scrolltop保留上次位移的解决方案
查看>>
python 函数(一)
查看>>
我说我在总结谁会信。。
查看>>
数据库索引的作用和长处缺点
查看>>
Laravel 安装代码智能提示扩展「laravel-ide-helper」
查看>>
java开发配套版本
查看>>
MySQL的 Grant命令权限分配
查看>>
非阻塞的c/s,epoll服务器模型
查看>>
YII框架安装过程总结
查看>>
HDOJ(HDU) 1862 EXCEL排序(类对象的快排)
查看>>
Codeforces Round #381 (Div. 2) 复习倍增//
查看>>
Money类型转化为String去除小数点后0解决方法
查看>>
ArcScene 高程不同的表面无法叠加
查看>>
[ONTAK2010] Peaks
查看>>
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
参数范围的选择
查看>>