版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15253407/article/details/73650156
angular 创建服务的四种方式
第一种 $provide 内置服务创建
angular.module('app', [], function($provide) {
$provide.factory('$kk', function() {
var obj = {
name: 'hello'
};
return obj;
})
}).controller('myCtrl', function($scope, $kk) {
console.log('$kk', $kk);
})
第二种 factory 模块方法
angular.module('app', [])
.factory('$kk',function() {
return {};
}).controller('myCtrl', function($scope, $kk) {
console.log('$kk', $kk);
})
第三种 service 模块方法
//需要传递一个构造函数,必须是一个构造函数
angular.module('app', [])
.service('$kk', function() {
this.name = 'hello';
this.say = function() {
return this.name + 'world';
}
}).controller('myCtrl', function($scope, $kk) {
console.log('$kk', $kk.name);
console.log('$kk', $kk.say());
})
constant和value 创建服务用来返回一个常量
第四种 value
angular.module('app', [])
.value('$kk',{
HELLO: 'hello'
}).controller('myCtrl', function($scope, $kk) {
console.log('$kk', $kk.HELLO); // hello
//借助angular.extend() 可以修改常量值。 需要借助$RATE 内置的服务
angular.extend($RATE, {HELLO: 'world'})
console.log('$kk', $kk.HELLO); //world
})
constant 用法和 value 相同 两者之间最大的区别是,constant服务创建的常量可以被注入到config之中去,所以constant常用来创建配置数据,value用来创建对象和函数。