Je regarde une démo d'utilisation de $injector. Voici tout le code de la démo :
<!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']);
Que veut dire ng dans cette phrase ?
fait référence au module principal 'ng', c'est-à-dire que le module central angulaire var injector = angulaire.injector(["ng"]) crée son propre $injector au lieu du $injector automatiquement créé au démarrage de l'application. Pour créer vous-même $injector, vous devez transmettre une liste de modules. Dans l'exemple ci-dessus, il y a deux modules 'a4_6' et 'ng'. Si vous devez utiliser un service dans Angular Core, vous devez spécifier explicitement le module ng. La méthode angulaire.module supposera que vous avez une dépendance sur le module ng et ajoutera discrètement "ng" à votre liste de dépendances, tandis que la fonction d'injection ne fera aucune hypothèse sur le module de dépendance.