在看一个$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="../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是什么意思啊?
핵심 'ng' 모듈을 말합니다. 즉, 각도 코어 모듈 var injector = angle.injector(["ng"])는 애플리케이션이 시작될 때 자동으로 생성되는 $injector 대신 자체 $injector를 생성합니다. $injector를 직접 생성하려면 모듈 목록을 전달해야 합니다. 위의 예에는 'a4_6'과 'ng'라는 두 개의 모듈이 있습니다. Angular 코어에서 서비스를 사용해야 하는 경우 ng 모듈을 명시적으로 지정해야 합니다. angle.module 메소드는 ng 모듈에 대한 종속성이 있다고 가정하고 종속성 목록에 조용히 "ng"를 추가하는 반면, 인젝터 함수는 종속성 모듈에 대해 어떠한 가정도 하지 않습니다.