2017-05-18 2 views
0

var myApp = angular.module('myApp', []); 
 

 
var explicitInjector = angular.injector(['myApp'], true); 
 
console.log('modchk outside ctrler', explicitInjector); 
 
myApp.service('serv', function() {}); 
 

 
var x = angular.injector(['myApp'], true); 
 

 
function MyCtrl1($scope, $injector) { 
 
    $scope.result = JSON.stringify($injector) == JSON.stringify(explicitInjector); 
 
    $scope.value1 = $injector.has('serv'); 
 
    $scope.value2 = explicitInjector.has('serv'); 
 
} 
 
myApp.controller('MyCtrl1', MyCtrl1);
<html ng-app='myApp'> 
 

 
    <head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
    </head> 
 

 
    <body> 
 
    <div id="div1" ng-controller="MyCtrl1"> 
 
     <P>(JSON.stringify($injector)==JSON.stringify(explicitInjector))={{result}} 
 
     <hr> 
 
     <p>injector as argument to the controller($inject)={{value1}}</p> 
 
     <hr> 
 
     <p>injector from outside the controller(angular.injector())={{value2}}</p> 
 
    </div> 
 
    </body> 
 

 
</html>

Hier angular.injector() namentlich sowohl Objekt ich erhalte $injector und auf dem Vergleich explicitInjector und innen Controller ich versuche, einen Injektor außerhalb Controller zu erstellen Inhalte zeigen dasselbe. wenn ich versuche, den Dienst vorhanden mit .has() von beiden dort zu überprüfen, ist es true mit $ Injektor und false mit explicitInjector zeigt, wo es true .help mich in diesem, Vielen Dank im Voraus gegeben haben sollte

Antwort

1

Hier ist ein Plunker :

http://plnkr.co/edit/UAVLTig4k2iZ1vLbt03B?p=preview

  • änderte ich die Version 1.5.8
  • verwendet ===

Der Vergleich schlägt fehl, weshalb die Eigenschaft in explicitInjector nicht gefunden wird.

+0

danke, aber was war das Problem in 1.4.8? – Abhishek

+0

in den letzten Jahren. das ist die stabilste Version von Ang. 1. und ziemlich stabil n vorhersagbar. Jede Version darüber ist auch in Ordnung. Der Kontext für diese bestimmte Injektion wurde nicht richtig in 1.4.x erhalten, was erklärt, warum dies geschah. Ich würde vorschlagen, dass Sie zu irgendeiner Version über 1.5.8 migrieren, um neue Eigenschaften wie Bestandteile, etc. zu verwenden. – Plankton

+0

danke, nette Info – Abhishek