angular.js - $injector注入器里的ng是什么意思?

浏览:37日期:2023-01-05

问题描述

在看一个$injector用法的demo,下面是demo的所有代码:

<!DOCTYPE html><html lang='en' ng-app='a4_6'><head> <meta charset='UTF-8'> <title>Title</title> <script type='text/javascript' src='https://www.6hehe.com/bower_components/angular/angular.min.js'></script></head><body> <h1>has和get方法的示例</h1><p ng-controller='c4_6'> <!--视图组件--></p></body><script type='text/javascript'> var a4_6 = angular.module(’a4_6’,[]) .factory(’$custom’, function(){ return { print: function(msg){ console.log(msg); } }; }); var injector = angular.injector([’a4_6’,’ng’]); var has = injector.has(’$custom’); console.log(has); if(has){var custom = injector.get(’$custom’);custom.print('控制台输出任意的内容'); } a4_6.controller(’c4_6’,[’$scope’,’$custom’, function($scope,$custom){//控制器代码 }]);</script></html>

var injector = angular.injector([’a4_6’,’ng’]); 这句话里的ng是什么意思啊?

问题解答

回答1:

指核心的‘ng’module,也即angular核心模块var injector = angular.injector(['ng'])是创建自己的$injector而不是应用启动时自动创建的$injector。自己创建$injector你需要传递一个module列表,上面例子有’a4_6’,’ng’两个module。如果你需要使用Angular核心中的任何service的话你必须显式的指明ng module。angular.module方法会假设你对ng module有依赖,并会悄悄的为你的依赖列表添加”ng”,而injector函数对于依赖module则不会做任何的假设。

相关文章: