angularjs-factory,provider,service,constant,value,decorator

1、factory

用 Factory 就是创建一个对象,为它添加属性,然后把这个对象返回出来。你把 service 传进 controller 之后,在 controller 里这个对象里的属性就可以通过 factory 使用了。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="angular.min.js"></script>
    <script>
        angular.module(‘mod‘, [])
            //定义工厂模块-factory
            .factory(‘fact‘, [function () {                      
                return {
                    str:"testfactory",
                    sum:function (n1,n2) {
                        return n1+n2
                    }
                };
            }])
            //添加依赖注入模块fact
            .controller(‘testCtrl‘, [‘$scope‘,‘fact‘, function ($scope,fact) {
                alert(fact.str)
            }])
    </script>
</head>
<body ng-app=‘mod‘ ng-controller=‘testCtrl‘>
    
</body>
</html>

2、provide

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

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="angular.min.js"></script>
    <script>
        angular.module(‘mod‘, [])
            .controller(‘modCtrl‘, [‘$scope‘,‘prod‘, function ($scope,prod) {
                 alert(prod.a+prod.b)
            }])
            .provider(‘prod‘, [function () {              
                this.$get = [function() {
                    return {
                        a:12,
                        b:15
                    };
                }];
            }])
    </script>
</head>
<body ng-app=‘mod‘ ng-controller=‘modCtrl‘>
    
</body>
</html>

3、service

Service 是用"new"关键字实例化的。因此,你应该给"this"添加属性,然后 service 返回"this"。你把 service 传进 controller 之后,在controller里 "this" 上的属性就可以通过 service 来使用了。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="angular.min.js"></script>
    <script>
        angular.module(‘mod‘, [])
            .service(‘serv‘, [function () {
                this.a=12
            }])
            .controller(‘modCtrl‘, [‘$scope‘,‘serv‘, function ($scope,serv) {
                alert(serv.a)
            }])
    </script>
</head>
<body ng-app=‘mod‘ ng-controller=‘modCtrl‘>
    
</body>
</html>

4、constant与value

constant不可修饰

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="angular.min.js"></script>
    <script>
        angular.module(‘mod‘, [])
            .constant(‘VERSION‘, ‘5.0.3‘)
            .value(‘name‘, ‘cisco‘)
            .controller(‘modCtrl‘, [‘$scope‘,‘VERSION‘,‘name‘, function ($scope,VERSION,name) {
                alert(name+‘:‘+VERSION)
            }])
    </script>
</head>
<body ng-app=‘mod‘ ng-controller=‘modCtrl‘>
    
</body>
</html>

5、decorator

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="angular.min.js"></script>
    <script>
        angular.module(‘mod‘, [])
            .constant(‘VERSION‘, ‘5.0.3‘)
            .value(‘name‘, ‘cisco‘)
            .controller(‘modCtrl‘, [‘$scope‘,‘VERSION‘,‘name‘,‘prod‘, function ($scope,VERSION,name,prod) {
                alert(name+‘ ‘+prod.nxos+‘‘+prod.type+‘ ‘+prod.date+‘ ‘+VERSION)
            }])
            .provider(‘prod‘, [function () {
                this.$get = [function() {
                    return {
                        nxos:‘nxos‘,
                        type:‘5548‘
                    };
                }];
            }])
            .decorator(‘prod‘,function ($delegate) {
                $delegate.date=‘2007.1.10‘
                return $delegate
            })
    </script>
</head>
<body ng-app=‘mod‘ ng-controller=‘modCtrl‘>
    
</body>
</html>
时间: 2024-10-04 10:14:08

angularjs-factory,provider,service,constant,value,decorator的相关文章

AngularJS 之 Factory vs Service vs Provider【转】

英文原文:AngularJS: Factory vs Service vs Provider 当你初试 Angular 时,很自然地就会往 controller 和 scope 里堆满不必要的逻辑.一定要早点意识到,controller 这一层应该很薄:也就是说,应用里大部分的业务逻辑和持久化数据都应该放在 service 里.我每天都会在 Stack Overflow 上看到几个同类的问题,关于如何在 controller 里保存持久化数据.这就不是 controller 该干的事.出于内存性

angularjs---服务(service / factory / provider)

初angularJs时  常写一些不够优雅的代码  !我总结了一下看看各位有没有中枪的!-----( 这里只针对服务service及其相关! ) 以下做法不太优雅 兄弟controller 之间的相同的业务逻辑的实现 靠  从父 controller 通过继承实现.   × 将大量的不必要的业务逻辑和持久化的数据  堆放在 $scope  和controller中.    × ...... 其实我们应该把业务逻辑和持久化的数据尽量放在service中 从内存性能的角度来看,只有在需要contro

[转载]我看到的最好的解释AngularJs中Factory和Service和Provide不同

AngularJS: Factory vs Service vs Provider By Tyler On May 4, 2014 With 44 Comments In Technical When you first get started with Angular, you’ll naturally find yourself flooding your controllers and scopes with unnecessary logic. It’s important to rea

[AngularJS系列(4)] 那伤不起的provider们啊~ (Provider, Value, Constant, Service, Factory, Decorator)(转)

用AngularJS做项目,但凡用过什么service啊,factory啊,provider啊,开始的时候晕没晕?!晕没晕?!感觉干的事儿都差不多啊,到底用哪个啊?!别告诉我你们几个就是为了跟我炫耀兄弟多!! 好吧...也许是我的问题,脑仁儿确实不够大,反正我是晕的直挠墙~ 那到底什么时候该请他们谁出场啊? 经过挠墙之后挠官网文档挠google挠源码挠例子试验,终于让我把他们的区别给挠出来了!(得意的笑--) 首先,provider, value, constant, service, fact

[转]angularjs的provider~ (Provider, Value, Constant, Service, Factory, Decorator)

用AngularJS做项目,但凡用过什么service啊,factory啊,provider啊,开始的时候晕没晕?!晕没晕?!感觉干的事儿都差不多啊,到底用哪个啊?!别告诉我你们几个就是为了跟我炫耀兄弟多!! 好吧...也许是我的问题,脑仁儿确实不够大,反正我是晕的直挠墙~ 那到底什么时候该请他们谁出场啊? 经过挠墙之后挠官网文档挠google挠源码挠例子试验,终于让我把他们的区别给挠出来了!(得意的笑--) 首先,provider, value, constant, service, fact

转载:[AngularJS系列] 那伤不起的provider们啊~ (Provider, Value, Constant, Service, Factory, Decorator)

来源:http://hellobug.github.io/blog/angularjs-providers/ 用AngularJS做项目,但凡用过什么service啊,factory啊,provider啊,开始的时候晕没晕?!晕没晕?!感觉干的事儿都差不多啊,到底用哪个啊?!别告诉我你们几个就是为了跟我炫耀兄弟多!! 好吧...也许是我的问题,脑仁儿确实不够大,反正我是晕的直挠墙~ 那到底什么时候该请他们谁出场啊? 经过挠墙之后挠官网文档挠google挠源码挠例子试验,终于让我把他们的区别给挠出

AngularJS注册和使用服务和常量(provider、factory、service、constant、value)

1.   简介 AngularJS采用MVC架构,提供了服务的注册和以依赖注入方式使用服务的机制.服务是功能(方法)和数据(常量)的抽象,比如系统中关于用户信息相关的功能(头像.昵称.签名.生日.性别等信息的获取与修改)抽象后集中在一个对象中,那么这个对象就可以视为一个服务.服务可以通过angular.Module(常以var app = angular.module('my-app',[])方式获取)和$provider(以依赖注入方式获取)对象注册,常以依赖注入的方式使用使用. 每个服务有一

Angularjs1.x 中的 service,factory,provider,constant,value

了解 Angularjs1.x 中的 service,factory,provider,constant,value 的应用场景及区别 不管 service , factory 还是 provider 都属于 service 关于 service service 一旦被定义后就可以在任何地方通过依赖的方式调用且可以保存数据,直到应用结束,比如 controller(['service', function(service){}]); 而 controller 则一旦路由发生变化 controll

angular 服务 service factory provider constant value

angular服务 服务是对公共代码的抽象,由于依赖注入的要求,服务都是单例的,这样我们才能到处注入它们,而不用去管理它们的生命周期. angular的服务有以下几种类型: 常量(Constant): 用于声明不会被修改的值. 变量(Value): 用于声明会被修改的值. 服务(Service): 这个名称跟服务这个大概念同名,就种行为就像是给自己孩子取名为"孩子".只需要创建这个服务,然后等angular把它new出来,保存这个服务,然后就可以到处注入了. 工厂(Factory):