Ответ 1
Попробуйте добавить это:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js"></script>
У меня возникла проблема с 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
Попробуйте добавить это:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js"></script>
В разработке я рекомендую вам использовать неминифицированные дистрибутивы: И все ошибки становятся более информативными! Вместо 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">
Попробуйте добавить:
<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.module('myModule', []) создаст модуля myModule и перезаписать любой существующий модуль с именем myModule. использование angular.module('myModule') для извлечения существующего модуля.
Удостоверьтесь, что функция включена в закрытие, в комплекте с дополнительным() в конце:
(function(){
var app = angular.module('myApp', []);
})();
Ранее у меня была одна и та же проблема, но я понял, что на моей главной странице (index.html
) я не включил "app.js
" (основное приложение).
Поэтому даже когда вы включаете все зависимости, требуемые AngularJS, вы можете получить эту ошибку в консоли. Поэтому всегда указывайте необходимые файлы на своей главной странице, и вы не должны иметь эту проблему.
Надеюсь, это поможет.
Проблема была вызвана отсутствием включения модуля 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 Давид отвечает
Я получил эту ошибку, потому что у меня была зависимость от другого модуля, который не был загружен.
angular.module( "app", [ "kendo.directives" ]). controller ( "MyCtrl", function() {}...
поэтому, хотя у меня были все модули Angular, у меня не было кендо.
Убедитесь, что переменная, содержащая ваш angular.module, структурирована правильно.
Это произойдет с ошибкой "Неисправность: [$ injector: modulerr]":
var angApp = angular.module("angApp");
Это работает:
var angApp = angular.module("angApp", []);
Это подлый, поскольку сообщение об ошибке не указывает на одну вещь в частности (таким образом, широкий спектр ответов). Кроме того, большинство js linters не поймут подробностей. Держись!
У меня была та же проблема. Вы должны ввести код Angular js вне любой функции, например:
$( document ).ready(function() {});
ok, если вы получаете модуль Uncaught Error: [$injector:modulerr]
и angular в ошибке, сообщающей вам, у вас есть дублирующий модуль ng-app.
У меня была точно такая же проблема, и я решил удалить закрытие:
$(function(){
var app = angular.module("myApp", []);
app.controller('myController', function(){
...
});
});
становится:
var app = angular.module("myApp", []);
app.controller('myController', function(){
...
});
Ошибка означает, что инжектор зависимостей не смог найти зависимость "ngResource". Тег script в принятом ответе обеспечивает эту зависимость.
Вы также получите ту же ошибку, если вы добавите какие-либо настраиваемые модули в зависимости, но не добавили тег script для включения файла .js, содержащего зависимость.
Просто бросив это на случай, если это поможет, у меня возникла эта проблема, и причина для меня была в том, что когда я связал свой материал Angular, я ссылался на основной файл приложения как "AngularWebApp" вместо "AngularWebApp.js", надеюсь это помогает.
У меня тоже была проблема, я только что удалил следующую строку кода из файла BundleConfig.cs, и мой код работает нормально.
BundleTable.EnableOptimizations = true;
Не загружайте JavaScript внутри тега сценария ссылки cdn. Используйте отдельный тег сценария для загрузки сценариев AngularJs. У меня была та же проблема, но я создал отдельный <script>
Затем ошибка исчезла.
Проверьте, используете ли вы дважды приложение ng-app в своем HTML-коде.
Если вы попробовали какой-либо из перечисленных выше способов и все еще не можете решить вашу проблему, возможно, ваши обновленные файлы не загружены в 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"