Подтвердить что ты не робот

Angular Ошибка JS Uncaught: [$ injector: modulerr]

У меня возникла проблема с Angular JS, получившим сообщение об ошибке: Uncaught Error: [$ injector: modulerr]. Мой JS файл выглядит

angular.module('MyApp', ['ngRoute']);
angular.module('MyApp',['ngResource']);
function TwitterCtrl($scope,$resource){
}

Я также включил angular -route-js

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js">     
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.min.js">

Angular документация говорит о проблеме http://docs.angularjs.org/api/ngRoute

4b9b3361

Ответ 1

Попробуйте добавить это:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js"></script>

Ответ 2

В разработке я рекомендую вам использовать неминифицированные дистрибутивы: И все ошибки становятся более информативными! Вместо angular.min.js используйте angular.js

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.js">     
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.js">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.js">

Ответ 3

Попробуйте добавить:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js">

и

angular.module('MyApp', ['ngRoute','ngResource']);
function TwitterCtrl($scope,$resource){
}

Вы должны вызывать angular.module только один раз со всеми зависимостями, потому что с вашим текущим кодом вы создаете новый MyApp модуль переписываете предыдущий.

Из angular документации:

Остерегайтесь, что использование angular.module('myModule', []) создаст модуля myModule и перезаписать любой существующий модуль с именем myModule. использование angular.module('myModule') для извлечения существующего модуля.

Ответ 4

Удостоверьтесь, что функция включена в закрытие, в комплекте с дополнительным() в конце:

(function(){                                                                     

    var app = angular.module('myApp', []);                                     


})();  

Ответ 5

Ранее у меня была одна и та же проблема, но я понял, что на моей главной странице (index.html) я не включил "app.js" (основное приложение). Поэтому даже когда вы включаете все зависимости, требуемые AngularJS, вы можете получить эту ошибку в консоли. Поэтому всегда указывайте необходимые файлы на своей главной странице, и вы не должны иметь эту проблему.

Надеюсь, это поможет.

Ответ 6

Проблема была вызвана отсутствием включения модуля ngRoute. Начиная с версии 1.1.6, это отдельная часть:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

var app = angular.module('myapp', ['ngRoute']);

Это получает ссылку от: AngularJS 1.2 $инжектор: modulerr Давид отвечает

Ответ 7

Я получил эту ошибку, потому что у меня была зависимость от другого модуля, который не был загружен.

angular.module( "app", [ "kendo.directives" ]). controller ( "MyCtrl", function() {}...

поэтому, хотя у меня были все модули Angular, у меня не было кендо.

Ответ 8

Убедитесь, что переменная, содержащая ваш angular.module, структурирована правильно.

Это произойдет с ошибкой "Неисправность: [$ injector: modulerr]":

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

Это работает:

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

Это подлый, поскольку сообщение об ошибке не указывает на одну вещь в частности (таким образом, широкий спектр ответов). Кроме того, большинство js linters не поймут подробностей. Держись!

Ответ 9

У меня была та же проблема. Вы должны ввести код Angular js вне любой функции, например:

$( document ).ready(function() {});

Ответ 10

ok, если вы получаете модуль Uncaught Error: [$injector:modulerr] и angular в ошибке, сообщающей вам, у вас есть дублирующий модуль ng-app.

Ответ 11

У меня была точно такая же проблема, и я решил удалить закрытие:

$(function(){
    var app = angular.module("myApp", []); 
    app.controller('myController', function(){
        ...
    });
});

становится:

var app = angular.module("myApp", []); 
app.controller('myController', function(){
    ...
});

Ответ 12

Ошибка означает, что инжектор зависимостей не смог найти зависимость "ngResource". Тег script в принятом ответе обеспечивает эту зависимость.

Вы также получите ту же ошибку, если вы добавите какие-либо настраиваемые модули в зависимости, но не добавили тег script для включения файла .js, содержащего зависимость.

Ответ 13

Просто бросив это на случай, если это поможет, у меня возникла эта проблема, и причина для меня была в том, что когда я связал свой материал Angular, я ссылался на основной файл приложения как "AngularWebApp" вместо "AngularWebApp.js", надеюсь это помогает.

Ответ 14

У меня тоже была проблема, я только что удалил следующую строку кода из файла BundleConfig.cs, и мой код работает нормально.

BundleTable.EnableOptimizations = true;

Ответ 15

Не загружайте JavaScript внутри тега сценария ссылки cdn. Используйте отдельный тег сценария для загрузки сценариев AngularJs. У меня была та же проблема, но я создал отдельный <script> Затем ошибка исчезла.

Ответ 16

Проверьте, используете ли вы дважды приложение ng-app в своем HTML-коде.

Ответ 17

Если вы попробовали какой-либо из перечисленных выше способов и все еще не можете решить вашу проблему, возможно, ваши обновленные файлы не загружены в Chrome. Это то, что случилось со мной.

Есть два способа убедиться, что ваши файлы js обновлены в браузере,

1) Удерживайте клавишу Shift, нажимая кнопку перезагрузки вашего браузера.

2) Тяжело перезагрузить страницу

 * Open Developer Tools by either pressing F12 or ... -> More Tools -> Developer Tools
 * Right-click the reload button of your browser and click "Empty Cache and Hard Reload"