angularjs学习:依赖注入

1. AngularJS使用
$injetor(注入器服务)来管理依赖关系的查询和实例化。事实上, $injetor负责实例化AngularJS中所有的组件,包括应用的模块、指令和控制器等。在运行时, 任何模块启动时$injetor都会负责实例化,并将其需要的所有依赖传递进去。

在需要的地方通过参数进行传递的方式来进行依赖注入的。

在内部, 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})

时间: 2024-10-23 01:41:50

angularjs学习:依赖注入的相关文章

AngularJS的依赖注入方式

在定义controller,module,service,and directive时有两种方式, 方式一: var myModule = angular.module('myApp', []); myModule.controller('myCtrl', ['$scope', 'Project', function($scope, Project) { }]); 方式二: var myModule = angular.module('myApp', []); function myCtrl($

AngularJS DI(依赖注入)实现推测

AngularJS DI(依赖注入) http://www.cnblogs.com/whitewolf/archive/2012/09/11/2680659.html 回到angularjs:在框架中为我们提供了angular.injector(modules)DI注入注射器.但是在我们使用注入的时候常常是不需要关心具体的如何注入.我们只需要按照其规则书写我们的angularjs代码就会很容易的得到angularjs的DI特性 1:推断式注入:在angularjs中我们可以在我们需要注入的地方按

AngularJS(15)-依赖注入

AngularJS 依赖注入 什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分. 该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦合,并遵循了依赖反转和单一职责原则.与服务定位器模式形成直接对比的是,它允许客户端了解客户端如何使用该系统找到依赖 一句话 --- 没事你不要来找我,有事我会

模拟AngularJS之依赖注入

一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的. 下面,我们看看AngularJS中常用的实现方式. 方法一:推断式注入声明,假定参数名称就是依赖的名称.因此,它会在内部调用函数对象的toString()方法,分析并提取出函数参数列表,然后通过$injector将这些参数注入进对象实例. 如下: //方法一:推断式注入声明,假定参数名称就是依赖

看laravel源码学习依赖注入

前言 初心 最近在看设计模式中的依赖注入,希望借助设计模式的神奇魔力,能达到一个目的,然后在此学习的过程中,能收获一个bonus.这个目的就是能使得自己设计的系统更简单更容易理解,或者是使得系统设计的结构和代码更简单,而bonus是企图在设计模式上实现概念上的并发.这篇文章是希望把自己这段时间的学习成果作一个记录和总结,然而并不要太期待,因为目前得出的结论并没有达到我的目的,bonus暂时希望也比较渺茫. 在知识网络结构认知上的准备 我们需要提前了解一下依赖倒置原则.控制反转和依赖注入的关系.控

spring框架学习--依赖注入

spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入.接口注入不作要求,下面介绍前两种方式. 1,set注入 采用属性的set方法进行初始化,就成为set注入. 1)给普通字符类型赋值. [java] view plain copy print? public class User{ privateString username; publicString getUsername() { returnusername; } publicvoid setUsernam

angularjs学习笔记--$http、数据渲染到表格、路由、依赖注入、provider

1—$http 可以从服务器中获取更大的数据集,这里使用angularjs的内置服务称为$http.使用angularjs的依赖注入为phoneList组件的控制器提供服务. 在我们的控制器中使用angularjs的$http服务,向我们的web服务器发出http请求,以获取文件中的数据. app/phone-list/phone-list.component1.js: angular.module('phoneList').component('phoneList',{ templateUrl

AngularJS(十):依赖注入

本文也同步发表在我的公众号"我的天空" 依赖注入 依赖注入不是AngularJS独有的概念,而是现代软件开发与架构的范畴,但是在AngularJS中"依赖注入"是其核心思想之一,所以我们专门来学习一下. 观察除"AngularJS路由"这节之前的控制器代码,发现我们把所有的业务逻辑都写在控制器代码部分,当代码规模小还好处理,随着代码规模扩大,这样的做法很快就会使代码变的难以维护,控制器将变成一个代码垃圾场,我们要做的所有东西都会倒在里面,它们会变

Angularjs - 依赖注入机制,多方协助共同开发

http://www.imooc.com/video/2862 在Angularjs中,ng-app只能出现一次.也就是说只能加载一次模块.当模块中的控制器成千上万时,就需要分成多个开发员同步开发了. 这时为了能达到效率不可能让多个开发人员更改同一个js文件.需要分成多个模块多个js文件开发.然后有两种方式合并, 1.使用grunt合并功能.甚至手动合并 2.使用angularjs的依赖注入机制,事实上就是定义模块时的第二个参数数组[]中,除了正常的组件名(如ui.router),还可以加入其他

spring学习(二)---依赖注入

spring第二个特性是依赖注入. 学习依赖注入,首先应该明白两个问题:1,谁依赖谁:2,谁注入,注入什么? 首先还是看代码: 还是这个bean: package testSpring.business.bean; import org.springframework.stereotype.Repository; import testSpring.business.iface.IPrint; /** * UserBean : * @author xuejupo [email protected