2016-04-12 76 views
0

我正在使用AngularJS的Web應用程序工作。 一切似乎都很好地工作,直到我試圖與微軟的先進的Web瀏覽器中運行:我的AngularJS應用程序不運行在Microsoft Edge,未知的提供商

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

我創建了一個服務,稱爲serviceAjax和從未有過任何問題,它在Chrome或Firefox。但是現在我試圖在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 &火狐)

+2

還有其他的選擇,而不是'避免使用ES6'。您可以通過轉換(如[babel](https://babeljs.io/))運行ES6代碼,使其符合ES5。然後,當瀏覽器一起行動時,轉變。這樣你就不會犧牲ES6的真棒。 – ste2425