Include – Tutorial AngularJS Crashkurs

  • Der Injector wird verwendet um Objekte die als Provider, instanzierter Typ, aufgerufene Methoden oder geladene Module zu erhalten
  • Warum braucht es die Dependency Injection
    • Separiert den Prozess zwischen Erstellung und Konsumierung von Abhängigkeiten
    • Der Verwender eine Dependency Injection muss sich nur noch Gedanken darüber machen, wie er sie zu verwenden hat, nicht aber um deren Erstellung wie dies bei Objektorientierten Sprachen via Konstruktor der Fall ist
    • Unterstützt auch das Mock-Objekte die für das Testen verwendet werden

Injector-Invoke.html

<!DOCTYPE html>
<html>
<script src=„lib/angular.js“></script>
<head lang=„en“>
<meta charset=„UTF-8“>
<title>Injector – Invoke</title>
</head>

<body>
<div ng-app=„myApp“>
<div ng-controller=„myCtrl“>
<button ng-click=„setValue()“>Button</button>
{{value}}
</div>
</div>

<script>
var app = angular.module(‚myApp‘,[]);

app.factory(‚inject‘,function(){
return {
value: ‚http://tiptopplaces.com/‘
};
});

app.controller(‚myCtrl‘,function($scope,inject,$injector){
$scope.value=‚http://easeflow.net/‘;

$scope.setValue=function(inject){
$injector.invoke(function(inject) {
$scope.value=inject.value;
});
};
});
</script>

</body>

</html>

Injector.html

<!DOCTYPE html>
<html>
<script src=„lib/angular.js“></script>
<head lang=„en“>
<meta charset=„UTF-8“>
<title>Injector</title>
</head>

<body>
<div ng-app=„myApp“>
<div ng-controller=myCtrl>
<button ng-click=setValue()“>Button</button>
{{value()}}
</div>
</div>

<script>
var myApp = angular.module(‚myApp‘,[]);

myApp.service(‚inject‘,function() {
this.value=‚http://easeflow.net/‘;
});

myApp.controller(‚myCtrl‘,function($scope,$injector){
$scope.setValue=function(){
var inject=$injector.get(‚inject‘);
inject.value=‚http://tiptopplaces.com/‘;
};

$scope.value=function(){
var inject=$injector.get(‚inject‘);
return inject.value;
};
});
</script>

</body>

</html>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.