2016-04-12 3 views
0

Я работаю над веб-приложением, используя AngularJS. Казалось, что все работает хорошо, пока я не попытался запустить его с Microsoft Edge, веб-браузер:Приложение My 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 :)

(У меня также были проблемы с Compability ES6 & Firefox)

+2

Есть и другие варианты, а не «избегайте использования ES6». Вы можете запустить свой код ES6 через преобразование (например, [babel] (https://babeljs.io/)), чтобы сделать его совместимым с ES5. Затем, когда браузеры начинают действовать вместе, превращение трансформации. Таким образом, вы не пожертвуете потрясающим ES6. – ste2425