管理服务的依赖

管理服务的依赖
    添加自定义服务的依赖方法
        在创建复杂的服务的时候,需要添加其他各类的服务和个类的对象

        添加方式有三种
            1.隐式指明
                指的是在创建服务的函数中,直接在参数中进行调用,不进行任何的声明,采用这种方式在代码压缩的时候注入的对象有可能失效
                    var app = angular.module('app',[]);
                    app.factory('hello',function(param1,param2){})

                    app:模块 hello:服务名称  param1和param2注入的服务或者是对象

            2.调用$inject属性
                可以将需要的服务封装成一个数组,将他们作为$inject属性的值,但是效率比较比,不推荐使用。

                var app angular.module('app',[]);
                app.$inhect = ['param1', 'param2']
                app.factory('hello',app)

            3.显示的声明
                在指定的服务的函数中,添加一个数组,在数组中按顺序声明,需要注入的服务和对象的名称,推荐使用
                var app = angular.module('app',[])
                app.factory('hello', ['param1', 'param2',function(param1,param2){}])

添加服务的其他设置
    在angular中提供了decorator,目前对自定义的服务或者内置功能进行扩展会使用到,
        $provide.decorator('ServiceName', Fn)

        $provide 表示注入后的创建服务对象;
        ServiceName 要拦截的服务的名称;
        Fn表示服务在实例化时候调用的参数,在执行这个对象的时候,需要传递一个参数$delegate,这个参数表示服务实例化之后的对象,服务的新功能是通过对这个对象进行扩展和优化的。

        demo:
            angular.modlue('app', [])
            .factory('$student', function() {
                return {
                    name: 'hello',
                    age: 20
                }
            })
            .config(function($provide)){
                $provide.decorator('$student', function($delegate){
                    $delegate.title = 'extend title delegate';
                    return $delegate;
                })
            }.controller('test', function($scope,$student) {
                $scope.stu = $student;
            })

            取值方式  {{ stu.name }} {{ stu.age }} {{ stu.title }}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值