资源描述
详解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依靠注入有所关心。 .
展开阅读全文