provider and $provide.decorator

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="../lib/AngularJs/angular.min.js"></script>
    <script src="../lib/AngularJs/ui-router.js"></script>
</head>
<body>
    <div data-ng-app="myApp" data-ng-controller="myCtrl">
        <h1>home</h1>
    </div>
</body>
<script>
    var myApp = angular.module(‘myApp‘,[‘ui.router‘]);
    myApp.provider(‘foo‘,function(){
        var thisIsPrivate = ‘private‘;
        return {
            setPrivate:function(newVal){
                thisIsPrivate = newVal;
            },
            //$get才是公开给用户的 ,其他的可在config里面使用
            $get:function(){
                function getPrivate(){
                    return thisIsPrivate;
                }
                return {
                    variable:‘public‘,
                    getPrivate:getPrivate
                };
            }
        };
    });

    //config用name + Provider , 用户用name
//    myApp.config(function(fooProvider){
//        fooProvider.setPrivate(‘new value‘);
//    });
    //添加新属性
    myApp.config(function($provide){
        $provide.decorator(‘foo‘,function($delegate){
            $delegate.greet = function(){
                return ‘hello world‘;
            };
            return $delegate;//记得return
        });
    });
    myApp.controller(‘myCtrl‘,[‘$scope‘,‘foo‘,function($scope,foo){
        $scope.name = ‘Jackey‘;
        //console.log(myService.getName());
        console.log(foo.getPrivate());

    }]);
</script>
</html>
时间: 2024-10-19 00:01:35

provider and $provide.decorator的相关文章

AngularJS入门基础——$provide.decorator 实例讲解

<body ng-controller="OneController"> <script>  var Foobar = function() {      return {        "name": "lin"      }    };    angular.module('myApp', [])    .controller('OneController', function($scope, emailService

[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中几种Providers(Factory, Service, Provider)的区别

原文: http://blog.xebia.com/2013/09/01/differences-between-providers-in-angularjs/ 什么是Provider? AngularJS docs 是这样定义provider的: provider是一个对象, 它有一个$get()方法. injector 调用$get方法以此来创建一个service的实例. Provider还有一些其他的方法用来配置provider. AngularJS 使用 $provide 注册新的pro

angular 服务 service factory provider constant value

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

转:angular的decorator方法

AngularJS实例 – 装饰$log 在AngularJS中,我们可以使用Angular内置或者自定义的services,在应用的各个部分之间分享数据和方法.假设你已经定义了一个service,但是在使用了一段时间之后又想要为这个service添加一些功能怎么办?方法之一当然是修改这个service的定义,直接在源码上动刀子.但是现在很多项目都需要通过团队协作来完成,直接修改别人的代码可能需要花费不少功夫,同时还要防范“牵一发而动全身”的风险.更进一步,如果你想给一些Angular内置的se

[Angular] Tree shakable provider

When we create a Service, Angluar CLI will helps us to add: @#Injectable({ providedIn: 'root' }) It only create a instance in root dependency tree. If there is no reference to use this provider, Angular will remove it from our production code. But th

[AngularJS] Decorator a directive

'use strict' .config(function config($provide) { $provide.decorator('ndTrackClickDirective', function diective($delegate) { /**@ngInject */ $delegate[0].compile = function() { // create a new link function return function(scope, el, attr) { /* Your c