2016-04-12 16 views
0

Ich arbeite an einer Webanwendung mit AngularJS. Alles schien gut zu funktionieren, bis ich versuchte es mit Microsoft Edge Web-Browser ausgeführt werden:Meine AngularJS-App wird nicht in Microsoft Edge ausgeführt. Unbekannter Anbieter

Error: [$injector:unpr] Unknown provider: serviceAjaxProvider <- serviceAjax <- MainCtrl 

ich einen Dienst erstellt, genannt serviceAjax und hatte nie ein Problem mit ihm auf Chrome oder Firefox. Aber jetzt, da ich versuche, meine App auf Edge zu verwenden, habe ich diesen Fehler bekommen.

Mein Service wird erklärt, wie die folgenden:

serviceAjax.js

angular.module('myApp') 
.service('serviceAjax', ['$http', function ($http) { 
... 
}]); 

Und ich nenne es wie dies in meinem Controller:

main.js

angular.module('myApp') 
.controller('MainCtrl', function ($scope,serviceAjax) { 
... 
}); 

Woher kommt dieser Fehler und wie kann ich ihn beheben?

Antwort

2

Fügen Sie diese:

<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> 
-1

Okay, ich herausgefunden, warum es nicht funktioniert:

In der Tat scheint es, dass der IE nicht versteht alles in ES6 geschrieben.

verwendete ich ein ES6 Parameter Default:

function(var = value) {...}; 

So :)

(ich hatte auch compability Probleme mit ES6 & Firefox)

+2

Es gibt vielmehr andere Optionen ES6 vermeiden als "Vermeiden Sie die Verwendung von ES6". Sie können Ihren ES6-Code über eine Umwandlung (wie [babel] (https://babeljs.io/)) ausführen, um ES5-kompatibel zu machen. Dann, wenn die Browser ihre Handlung zusammenbringen, wird die Transformation transformiert. Auf diese Weise opfern Sie nicht das Großartige, das ES6 ist. – ste2425