2016-08-24 2 views
0

Ich lerne AngularJS und seine Trennung von Bedenken mit Modul. Ich habe eine einfache App erstellt, die von einer index.html besteht, die die Ansicht ist, und zwei Dateien .js, eine für den Controller und eine für meinen eigenen Dienst. Die Frage ist die folgende: Wie kann ich die .js-Datei, die den Dienst enthält, in die für den Controller injizieren?AngularJS Modul Injektionslogik verstehen

Das ist mein controller.js

var myApp = angular.module('myApp',[]); 
myApp.controller('myController', function($scope, $window,$interval,$location) { 
    $scope.appUrl = $location.absUrl(); 
    $scope.port = $location.port(); 
    $scope.protocol = $location.protocol(); 
    $scope.winWidth = $window.innerWidth; 
    $interval(function(){ 
     $scope.winWidth = $window.innerWidth; 
    }, 1); 
}); 

und dies ist das Datum-Zeit-service.js

var service = angular.module('myApp',[]); 
service.factory('dateTimeService', function() { 
    var dateTimeSvc = {}; 
    dateTimeSvc.getData = function(){ 
     return new Date().toDateString(); 
    } 
    dateTimeSvc.getTime = function(){ 
     return new Date().toTImeString(); 
    } 
    return dateTimeSvc; 
}) 

obviosly ich weiß, dass ich eine einzelne JS-Datei erstellen können, die beide enthält und rufe es in meine Sicht auf, aber ich möchte die Logik hinter der Abhängigkeitsinjektion verstehen, die mit dieser "dummen" Anwendung beginnt, und sie dann auf ein bisschen größere Anwendungen ausweiten. Danke euch allen für alle Antworten!

Antwort

0

Wir injizieren die js-Datei nicht. Wir injizieren Abhängigkeiten.

Wenn Sie schauen, wie sich injizieren Module zur Laufzeit dynamisch nach Winkel Kontext initialisized ist - seine hier http://blog.getelementsbyidea.com/load-a-module-on-demand-with-angularjs/ ich das schon vor langer Zeit umgesetzt haben, wo ich Module dynamisch vom Server aufrufen und sie in meine Winkel Kontext injizieren basierend auf In welchem ​​Bildschirm der Benutzer ist.

+0

Also, wenn ich eine Abhängigkeit in einer Datei habe, wie kann ich es in meiner Controller-Datei aufrufen? – Wallcraft

+0

myApp.controller ('myController', Funktion ($ scope, $ window, $ intervall, $ location, ABCD) -------- >> hier ABCD ist die Abhängigkeit, die Sie injizieren .. – jayanthCoder

Verwandte Themen