$provide对象的provider、factory、service方法
定义服务 $provider
服务本身是一个任意的对象。
ng 提供服务的过程涉及它的依赖注入机制。
angular 是用$provider对象来实现自动依赖注入机制,注入机制通过调用一个 provider 的 $get() 方法,把得到的对象作为参数进行相关调用
$provider提供很多很定义服务的方法,这些简便的方法还直接被module所引用
三种定义服务方式
$provider.provider
$provider.factory
factory 方法直接把一个函数当成是一个对象的 $get() 方法
@see module.factory
返回的内容可以是任何类型
$provider.service
和factory类似,但返回的东⻄西必须是对象
@see module.service
例子:
index.html
<div ng-app="myApp">
<div ng-controller="firstController">
{{name}}
</div>
</div>
<script src="//cdn.bootcss.com/angular.js/1.4.8/angular.js"></script>
<script type="text/javascript" src="app/index.js"></script>
app/index.js
var myApp = angular.module('myApp',[],function($provide){
// 自定义服务
$provide.provider('CustomService',function(){
this.$get = function(){
return {
message : 'CustomService Message'
}
}
});
// 自定义工厂
$provide.factory('CustomFactory',function(){
return [1,2,3,4,5,6,7];
});
// 自定义服务
$provide.service('CustomService2',function(){
return {
message : 'CustomService Message2'
}
})
});
myApp.controller('firstController',function($scope, CustomFactory, CustomService, CustomService2){
$scope.name = '张三';
console.log(CustomFactory);
console.log(CustomService);
console.log(CustomService2);
});
注意:也可以通过以下方式定义服务
var app = angular.module('myApp', []);
app.service();
app.factory();
效果
Last updated
Was this helpful?