`
boyitech
  • 浏览: 86009 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论
阅读更多

angular.injector

 

描述:
创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入.
 
使用方法:
angular.injector(modules, [strictDi])
 
参数详解:
Param Type Details
modules Array.<string|Function>

一组module或者他们的别名. ng module需要显示地申明出来.

strictDi
(optional)
boolean

Injector需不需要使用严格模式,即允不允许使用默认别名

(default: false)

返回值:
Injector对象.
 
示例代码:
1. 一般情况下次函数用来做单元测试啦, 我这边的示例比较为了示例而示例
<!DOCTYPE HTML>
<html ng-app="exampleApp">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<script src="jquery-1.7.2.min.js"></script>
	<script src="angular.min.js"></script>
	<script>
			
	var exampleApp = angular.module('exampleApp',[]);
			
	exampleApp.controller('exampleController',['$scope', function($scope){		
		
		$scope.name = "boyi";
		
		$scope.inject = function(){
			var $injector = angular.injector(['ng']);
			
			$injector.invoke(function($http) {
				var scopes = angular.element(document.body).scope();
				scopes.name = "博弈网络";//这里可以同http请求获得数据
			
			});
			
		};
		
	}]);
	
</script>
</head>

<body ng-controller='exampleController'>
<div id="test">博弈网络科技</div>
<div>{{name}}</div>
<div><input type="button" ng-click="inject()" value="injector"/></div>

<hr>

</body>	
</html>
 
2.  Angular的app 已经启动编译好了之后, 有时候你又想强行进入做一些逻辑或者修改,可以使用JQuery/jqLite元素的injector()方法
<!DOCTYPE HTML>
<html ng-app="exampleApp">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<script src="jquery-1.7.2.min.js"></script>
	<script src="angular.min.js"></script>
	<script>
				
			var exampleApp = angular.module('exampleApp',[]);		
	
	exampleApp.controller('exampleController',['$scope', function($scope){
			
		$scope.addElement = function(){
				var div = $('<div ng-controller="MyCtrl">{{content.label}}</div>');
					$(document.body).append(div);
					
				  angular.element(document).injector().invoke(function($compile){
				  	
				  	var scope = angular.element(div).scope();
				  	$compile(div)(scope);
				  	
				  	});
			
		}
	
		
	}]).controller('MyCtrl',['$scope', function($scope){
			$scope.content = {"label":"testing"};
		}]);
	

</script>
</head>

<body ng-controller='exampleController'>
<div id="test">博弈网络科技</div>
<div><input type="button" ng-click="addElement()" value="addElement"/></div>

<hr>

</body>	
</html>
 
0
0
分享到:
评论
1 楼 Virtoway 2015-08-12  

说到Angular JS
刚读到一片美国构架师的文章
关于使用Angular JS在Microsoft平台上进行编程,达到高效web管理
这个平台免费使用的
下载地址:http://www.asp.net/
请表叫我雷锋!
我手痒,顺带把那文章译啦 !博客里有http://www.iteye.com/topic/1141273

相关推荐

    Angular 理解module和injector,即依赖注入

    angularjs中与DI相关有angular.module()、angular.injector()、 $injector、$provide。对于一个DI容器来说,必须具备3个要素:服务的注册、依赖关系的声明、对象的获取。比如spring中,服务的注册是通过xml配置文件...

    projeto-workshop-angular:Angular.js Workshop 项目

    在projeto-workshop-angular中,你可以学习到如何使用`$injector`和`$provider`服务来管理并注入应用所需的依赖,如控制器、服务、工厂等。 **指令**是Angular.js扩展HTML语法的方式,它们可以创建自定义的DOM元素...

    AngularJS的依赖注入实例分析(使用module和injector)

    angularjs中与DI相关有angular.module()、angular.injector()、 $injector、$provide。对于一个DI容器来说,必须具备3个要素:服务的注册、依赖关系的声明、对象的获取。比如spring中,服务的注册是通过xml配置文件...

    Angular.js v1.8.2-源码.zip

    AngularJS,作为一款由Google维护的前端JavaScript框架,自2010年发布...这有助于提升你的前端开发技能,同时也能为向Angular 2+迁移做好准备,因为这两个版本虽然在API上有很大差异,但在设计思想上仍有许多共通之处。

    angular-florm:用于角度的前端 Localstore ORM

    var $florm = angular.injector(['myApp']).get('$florm') var Users = $florm('users'); var user = Users.new({name: 'foo', password : 'bar'}); user.potatoes = 12; user.save(); // Persists using window....

    angular学习笔记

    var injector = angular.injector(['ng', 'myApp']); // 定义控制器并指定依赖 app.controller('MyController', ['$scope', '$http', function($scope, $http) { // 控制器逻辑 }]); ``` #### 8. 初始化数据和...

    《angularJs深度剖析与最佳实践》源码

    通过阅读源码,可以了解如何定义服务、控制器、过滤器等,并使用`angular.module`和`angular.injector`进行注入。 3. **指令系统**:AngularJS的指令允许开发者扩展HTML,创建自定义行为。如`ng-repeat`、`ng-if`等...

    theinjection:这个简单而有用的依赖注入到 node.js 类似于 angular.js

    这种简单而有用的依赖注入到 node.js 类似于 angular.js。 文档 安装 $ npm install theinjection --save 首先,您需要注册依赖项。 var Injection = require ( 'theinjection' ) ; var injection = new Injector...

    AngularJS.1.4.6

    控制器可以使用$scope对象与视图进行交互,通过$injector注入服务并使用它们的功能。 5. **服务**:AngularJS 提供了一种创建可复用组件的方式,即服务。服务可以是单例,如$http用于发起HTTP请求,$timeout用于...

    Essential Angular

    Visualize and parse the Injector tree Understand advanced Lazy Loading Integrate and run different testing strategies on your code About the Author Victor Savkin and Jeff Cross are core contributors...

    Angularjs的启动过程分析

    通过调用angular.injector()方法,可以创建一个injector实例,它允许开发者在需要的时候注入所需的依赖。injector有多个方法,比如annotate用于分析函数签名。这是AngularJS利用依赖注入的一个例子,它有助于减少...

    angularjs1.2.2

    开发者可以通过`angular.injector`创建自定义的注入器,以及通过`$inject`属性或数组语法声明依赖。 2. **双向数据绑定**:AngularJS的双向数据绑定使得视图和模型之间保持同步,任何一方的改变都会立即反映到另...

    Angular1.X框架模板

    - **依赖注入**:简化代码的依赖关系,方便测试和维护,通过 $injector 服务实现。 - **服务**:如 $http 用于与服务器通信,$scope 作为视图和控制器之间的数据桥梁。 - **控制器**:处理业务逻辑,与视图和模型...

    AngularJS $injector 依赖注入详解

    - $injector.get('serviceName'):通过这个方法可以获得依赖的服务名字。 - $injector.annotate('xxx'):这个方法可以获得xxx的所有依赖项。 - $injector.invoke():用于调用一个函数,并注入依赖。 AngularJS的...

    AngularJS应用开发思维之依赖注入3

    injector.invoke(function($http) { // 这里可以使用$http服务进行HTTP请求操作 }); ``` 另外,AngularJS的注入器实现了集中存储所有provider的配方(即名称+类构造函数的组合)并提供按需创建不同组件实例的功能...

Global site tag (gtag.js) - Google Analytics