angularjs——依赖注入

angularjs把所有的功能组件都以依赖注入的方式组织起来,所有的组件必须通过容器(注入器)才能相互访问,从而来解耦 ;
1、注入器存储了所有的配方(名称+类构造函数):angualrjs启动时,组件(Provider)首先通过名称在注入器内注册;
2、组件要求提供一个$get函数(类工厂),injector通过调用该函数,获得组件的实例

<html>
<head>
    <title>修改数据</title>
    <meta charset='utf-8'>
    <script type="text/javascript" src='..ower_componentsangularjsangular.min.js'>
    </script>
    <script type="text/javascript">
        angular.module("stater",[])
        .provider("echello",function(){
            //提供一个类工厂
            this.$get = function(){
                return "hello word";
            }
        })


        angular.element(document).ready(function(){
            //创建一个注入器,调用类工厂函数,获得实例
            //invoke()直接调用一个函数体,并通过函数参数名注入或者依赖数组注入的方式注入所依赖的服务对象;
            // 1.参数名注入
            angular.injector(["ng","stater"]).invoke(function(echello){
                var e = document.querySelector("#logger");
                angular.element(e).text(echello)
            })
            // 2.依赖数组注入,这个时候无论填入什么参数,对结果都没用影响
            angular.injector(["ng","stater"]).invoke(["echello",function(v){
                var e = document.querySelector("#logger");
                angular.element(e).text(v)
            }])
        })

    </script>
<body ng-app="stater">
    <!-- angularjs把所有的功能组件都以依赖注入的方式组织起来,所有的组件必须通过容器(注入器)才能相互访问,从而来解耦 ;
    1、注入器存储了所有的配方(名称+类构造函数):angualrjs启动时,组件(Provider)首先通过名称在注入器内注册;
    2、组件要求提供一个$get函数(类工厂),injector通过调用该函数,获得组件的实例
    -->
    <div id="logger"></div>

</body>
</html>
原文地址:https://www.cnblogs.com/yzg1/p/4673524.html