2017-09-04 3 views
0

I-Code habe wie,AngularJS - Verschieben Service-Code auf eine andere Datei

<script> 
var MyApp = angular.module("MyApp", ['mc.resizer','chart.js']) 
MyApp.controller('Ctrl1', function ($scope, $http,MyService) { 
     MyService.EnvDetails().then(function success(data){ 
      $scope.httpdata = data; 
      }, function error(err){ 
       console.log("error found"); return err; 
      }); 
}); 
</script> 

und zu versuchen, Service-Code in einem anderen Javascript-Datei in einem anderen Ordner zu speichern, die wie ist,

var MyApp = angular.module("MyApp", []); 
MyApp.service('MyService', function($http) { 
    this.EnvDetails = function() { 
     return $http({ 
        url: '/myurl'      
     }).then(
      function successCallback(response) { 
       //Some Code 
       return //Some; 
      }, function errorCallback(response) {     
       return response; 
      } 
     ); 
    }; 
}); 

Speichern dieser Code in "MyService.js" und bezieht diese Datei in als

<script type="text/javascript" src="javascripts/MyService.js"></script> 

Das bin ich Fehler geben,

angular.js:11607 Error: [$injector:unpr] Unknown provider: getEnvDetailsServiceProvider <- getEnvDetailsService <- Ctrl1

Aber wenn ich Service-Code in derselben Datei setzen (mit Ausnahme der ersten Zeile var MainApp = angular.module ("MainApp", []);), zusammen mit Controller-Code, es funktioniert. Ich bin ahnungslos, wo mir die Referenz fehlt. Bitte helfen Sie.

Dank

Antwort

1

Wenn Sie auf eine andere Datei speichern, keine Notwendigkeit, die modulare Erklärung wieder hinzufügen,

die Abhängigkeiten entfernen

//remove this line var MyApp = angular.module("MyApp", []); 
MyApp.service('MyService', function($http) { 
    this.EnvDetails = function() { 
     return $http({ 
        url: '/myurl'      
     }).then(
      function successCallback(response) { 
       //Some Code 
       return //Some; 
      }, function errorCallback(response) {     
       return response; 
      } 
     ); 
    }; 
}); 
+0

Wie vorgeschlagen, aber immer noch Fehler bekommen. angular.js: 11607 Fehler: [$ injector: unpr] Unbekannter Provider: MyServiceProvider <- MyService <- Ctrl1 – sand

+0

Haben Sie die Referenz in den HTML-Code eingefügt? – Sajeetharan

+0

Ich habe das verpasst, aber nachdem ich es aktiviert habe, bekomme ich jetzt zwei Fehler. 1.Uncaught ReferenceError: MyApp ist nicht in MyService.js definiert: 1. Und 2.angular.js: 11607 Fehler: [$ injector: unpr] Unbekannter Provider: MyServiceProvider <- MyService <- Ctrl1 – sand

0
var MyApp = angular.module("MyApp", []); 

Diese Linie neue Modul erzeugt. Sie sollten dies nur einmal aufrufen. In anderen Dateien verwenden Sie einfach:

var MyApp = angular.module("MyApp"); 

vorhandenes Modul Um zur Zeit.

Verwandte Themen