angular.injector
描述:
创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入.
使用方法:
angular.injector(modules, [strictDi])
参数详解:
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>
相关推荐
angularjs中与DI相关有angular.module()、angular.injector()、 $injector、$provide。对于一个DI容器来说,必须具备3个要素:服务的注册、依赖关系的声明、对象的获取。比如spring中,服务的注册是通过xml配置文件...
在projeto-workshop-angular中,你可以学习到如何使用`$injector`和`$provider`服务来管理并注入应用所需的依赖,如控制器、服务、工厂等。 **指令**是Angular.js扩展HTML语法的方式,它们可以创建自定义的DOM元素...
angularjs中与DI相关有angular.module()、angular.injector()、 $injector、$provide。对于一个DI容器来说,必须具备3个要素:服务的注册、依赖关系的声明、对象的获取。比如spring中,服务的注册是通过xml配置文件...
AngularJS,作为一款由Google维护的前端JavaScript框架,自2010年发布...这有助于提升你的前端开发技能,同时也能为向Angular 2+迁移做好准备,因为这两个版本虽然在API上有很大差异,但在设计思想上仍有许多共通之处。
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....
var injector = angular.injector(['ng', 'myApp']); // 定义控制器并指定依赖 app.controller('MyController', ['$scope', '$http', function($scope, $http) { // 控制器逻辑 }]); ``` #### 8. 初始化数据和...
通过阅读源码,可以了解如何定义服务、控制器、过滤器等,并使用`angular.module`和`angular.injector`进行注入。 3. **指令系统**:AngularJS的指令允许开发者扩展HTML,创建自定义行为。如`ng-repeat`、`ng-if`等...
这种简单而有用的依赖注入到 node.js 类似于 angular.js。 文档 安装 $ npm install theinjection --save 首先,您需要注册依赖项。 var Injection = require ( 'theinjection' ) ; var injection = new Injector...
控制器可以使用$scope对象与视图进行交互,通过$injector注入服务并使用它们的功能。 5. **服务**:AngularJS 提供了一种创建可复用组件的方式,即服务。服务可以是单例,如$http用于发起HTTP请求,$timeout用于...
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...
通过调用angular.injector()方法,可以创建一个injector实例,它允许开发者在需要的时候注入所需的依赖。injector有多个方法,比如annotate用于分析函数签名。这是AngularJS利用依赖注入的一个例子,它有助于减少...
开发者可以通过`angular.injector`创建自定义的注入器,以及通过`$inject`属性或数组语法声明依赖。 2. **双向数据绑定**:AngularJS的双向数据绑定使得视图和模型之间保持同步,任何一方的改变都会立即反映到另...
- **依赖注入**:简化代码的依赖关系,方便测试和维护,通过 $injector 服务实现。 - **服务**:如 $http 用于与服务器通信,$scope 作为视图和控制器之间的数据桥梁。 - **控制器**:处理业务逻辑,与视图和模型...
- $injector.get('serviceName'):通过这个方法可以获得依赖的服务名字。 - $injector.annotate('xxx'):这个方法可以获得xxx的所有依赖项。 - $injector.invoke():用于调用一个函数,并注入依赖。 AngularJS的...
injector.invoke(function($http) { // 这里可以使用$http服务进行HTTP请求操作 }); ``` 另外,AngularJS的注入器实现了集中存储所有provider的配方(即名称+类构造函数的组合)并提供按需创建不同组件实例的功能...