网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 详解Angularjs中的依赖注入
内容
    这篇文章主要为大家详细介绍了Angularjs中的依赖注入,AngularJS提供了一个至高无上的依赖注入机制,感兴趣的小伙伴们可以参考一下
    一个对象通常有三种方式可以获得对其依赖的控制权:
    在内部创建依赖;
    通过全局变量进行引用;
    在需要的地方通过参数进行传递
    依赖注入是通过第三种方式实现的。比如:
    function SomeClass(greeter) {
    this.greeter = greeter;
    }
    SomeClass.prototype.greetName = function(name) {
    this.greeter.greet(name);
    };
    SomeClass能够在运行时访问到内部的greeter,但它并不关心如何获得对greeter的引用。
    为了获得对greeter实例的引用,SomeClass的创建者会负责构造其依赖关系并传递进去。
    基于以上原因,AngularJS使用$injetor(注入器服务)来管理依赖关系的查询和实例化。
    事实上,$injetor负责实例化AngularJS中所有的组件,包括应用的模块、指令和控制器等。
    例如下面这段代码。这是一个简单的应用,声明了一个模块和一个控制器:
    angular.module('myApp', [])
    .factory('greeter', function() {
    return {
    greet: function(msg) {alert(msg);}
    }
    })
    .controller('MyController',
    function($scope, greeter) {
    $scope.sayHello = function() {
    greeter.greet("Hello!");
    };
    });
    当AngularJS实例化这个模块时,会查找greeter并自然而然地把对它的引用传递进去:
    <div ng-app="myApp">
    <div ng-controller="MyController">
    <button ng-click="sayHello()">Hello</button>
    </div>
    </div>
    而在内部,AngularJS的处理过程是下面这样的:
    // 使用注入器加载应用
    var injector = angular.injector(['ng', 'myApp']);
    // 通过注入器加载$controller服务:var $controller = injector.get('$controller');
    var scope = injector.get('$rootScope').$new();
    // 加载控制器并传入一个作用域,同AngularJS在运行时做的一样
    var MyController = $controller('MyController', {$scope: scope})
    以上就是本文的全部内容,希望本文对大家学习Angularjs依赖注入有所帮助。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/14 0:46:16