2016-04-12 9 views
0

私はAngularJSを使用しているWebアプリケーションで作業しています。私のAngularJSアプリケーションはMicrosoft Edge、Unknownプロバイダでは実行されません

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

私はserviceAjaxと呼ばれるサービスを、作成したとChromeまたはFirefox上で、それに問題がなかった:私はマイクロソフトエッジWebブラウザでそれを実行しようとするまで すべてがうまくいくように見えました。しかし、今私はEdgeで私のアプリを使用しようとしている私はこのエラーがある。

私のサービスは、次のように宣言されています

serviceAjax.js

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

そして、私は私のコントローラでこのようにそれを呼び出す:

main.js

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

このエラーはどこから来たのですか?どのように修正できますか?

答えて

2

これを追加します。

<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

さて、私はそれが機能しなかった理由が分かった:

は、実際にはIEがES6で書かれたすべてのものを理解していないようです。私はES6デフォルトパラメータを使用

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

のでES6を使用しないよう:)

(私もES6 & Firefoxでcompabilityの問題を抱えていた)

+2

他のオプションがありますではなく、 'ES6の使用を避ける'。 ES6コードをトランスフォーム([babel](https://babeljs.io/)など)で実行して、ES5準拠にすることができます。そして、ブラウザが一緒に行動を起こすと、変換が始まります。そうすれば、ES6という素晴らしいものを犠牲にすることはありません。 – ste2425

関連する問題