2016-04-29 9 views
2

laden Ich habe die folgenden drei Dateien für eine Anwendung mit Angular 1,5:Angular nicht mein Servicemodul

app.js

angular.module('myApp', ['ngRoute', 'myApp.service']) 
    .controller('AppController', AppController); 

AppController.$inject = ['$scope', 'GreeterService']; 

function AppController($scope, GreeterService) { 
    $scope.greeting = GreeterService.greet("World"); 
} 

service.js

angular.module('myApp.service', []) 
.factory('GreeterService', function() { 
    return { 
     salutation: 'Hello', 
     greet: function(name) { 
      return this.salutation + ' ' + name + '!'; 
     } 
    }; 
}); 

und Index .html

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title></title> 
    <link rel="stylesheet" href=""> 

</head> 
<body> 
    <header> 

    </header> 

    <main ng-app='myApp'> 
     <div ng-controller="AppController"> 
      {{ greeting }} 
     </div> 
    </main> 

    <footer> 
     <script src="libs/angular.js" charset="utf-8"></script> 
     <script src="libs/angular-route.min.js" charset="utf-8"></script> 
     <script src="js/app.js" charset="utf-8"></script> 
    </footer> 
</body> 
</html> 

ich kann die ap nicht bekommen p richtig zu laden, und ich weiß nicht warum. app.js und service.js befinden sich im selben Verzeichnis. Ich habe die Module für beide gemacht, ich injiziere myApp.Service in den Abhängigkeiten für myApp, myApp.Service definiert eine Factory, die ein Objekt zurückgibt, das als Singleton verwendet wird, und alle Namen stimmen überein. Der Fehler, den ich in der Konsole erhalte, besagt, dass myApp.service nicht geladen werden konnte, weil er nicht verfügbar ist. myApp und myApp.service verwenden DI, soweit ich das beurteilen kann, korrekt, und ich denke nicht, dass es der Controller ist, weil es nicht so weit kommt. Ich kann wirklich nicht sehen, was das Problem ist, und ich würde etwas Hilfe schätzen.

+1

Haben Sie den Link 'service.js' in' index.html' hinzugefügt? –

+0

Nein, aber ich habe ein anderes Projekt, wo ich dasselbe gemacht habe, was ich jetzt versuche, wo ich den Dienst nicht src Datei und es hat gut funktioniert. Ich habe versucht, es hinzuzufügen, und es hat die App funktioniert, aber ich sehe nicht, warum es nötig wäre, wenn der Modul-Lader das erledigen sollte. – redeagle47

+0

Nein, es wird nicht funktionieren, wenn Sie etwas vom Service erwarten. –

Antwort

2

Sie haben nicht die Referenz für service.js mit der Definition des Service in index.html

<!DOCTYPE html> 

</header> 

<main ng-app='myApp'> 
    <div ng-controller="AppController"> 
     {{ greeting }} 
    </div> 
</main> 

<footer> 
    <script src="libs/angular.js" charset="utf-8"></script> 
    <script src="libs/angular-route.min.js" charset="utf-8"></script> 
    <script src="js/app.js" charset="utf-8"></script> 
    <script src="js/service.js" charset="utf-8"></script> 
</footer> 

hinzugefügt

+0

Danke für die Antwort, ich wusste nicht, dass dies notwendig war, weil mein Build-Prozess die Tatsache verbarg, dass die Servicedatei für das andere Projekt mit der App-Datei verknüpft wurde. Es wurde deswegen im HTML verlinkt, und deshalb hat das andere Projekt funktioniert, und dieses hat nicht funktioniert. Danke für die Hilfe! – redeagle47