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

AngularJs ReferenceError: angular не определен

Я пытаюсь добавить настраиваемый фильтр, но если я использую следующий код:

angular.module('myApp',[]).filter('startFrom', function() {
    return function(input, start) {
        start = +start; //parse to int
        return input.slice(start);
    }
});

Но если я это сделаю, я получаю: "ReferenceError: angular не определен" в firebug.

Остальное приложение работает нормально, я использую ng-app в теге div не в теге html, а https://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.js

4b9b3361

Ответ 1

Хорошо, что это одностраничное приложение, используемое решение:

загрузите содержимое с помощью AJAX, как и любой другой контроллер, а затем вызовите:

angular.bootstrap($('#your_div_loaded_in_ajax'),["myApp","other_module"]);

Ответ 2

Сначала вы должны включить строку include angular, прежде чем включать любой другой файл js

Ответ 3

Я столкнулся с аналогичной проблемой из-за локальных удаленных ссылок

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.js"></script>
<script src="lib/js/ui-grid/3.0.7/ui-grid.js"></script>

Поскольку ui-grid.js зависит от angular.js, ui-grid требует angular.js к моменту ее загрузки. Но в приведенном выше случае ui-grid.js [локально сохраненный ссылочный файл] загружается до загрузки angularjs [из Интернета],

Проблема была решена, если у меня были как angular.js, так и ui-grid локально и также объявляя angular.js перед ui-сеткой

<script src="lib/js/angularjs/1.4.3/angular.js"></script>
<script src="lib/js/ui-grid/3.0.7/ui-grid.js"></script>

Ответ 4

Всегда убедитесь, что файл js (angular.min.js) сначала указан в файле HTML. Например:

----------------- Эта ссылка будет THROW. ------------------ -------

< script src="otherXYZ.js"></script>
< script src="angular.min.js"></script>

----------------- Эта ссылка будет РАБОТА, как ожидалось ----------------- -

< script src="angular.min.js"></script>
< script src="otherXYZ.js"></script>

Ответ 5

Как уже упоминалось в комментариях @bmleite, вы, вероятно, забыли загрузить angular.js.

Если я создаю скрипт с angular директивами в нем, но не включаю angular.js, я получаю ту же самую ошибку в консоли Chrome: Uncaught ReferenceError: angular is not defined

Ответ 6

Если вам удастся использовать рельсы и angular -rails gem, тогда проблема легко будет исправлена, добавив эту недостающую строку в application.js(или то, что когда-либо применимо в вашей ситуации):

//= require angular-resource

Ответ 7

Я столкнулся с этим, потому что я сделал копию и вставку ngBoilerplate в свой проект на Mac без Finder, отображающий скрытые файлы. Так что .bower не был скопирован с остальной частью ngBoilerplate. Таким образом, bower переместил ресурсы на bower_components (defult) вместо поставщика (как настроено), и мое приложение не получило angular. Вероятно, угловой случай, но он может помочь кому-то здесь.

Ответ 8

Я думаю, что это произойдет, если вы будете использовать "async defer" для (файла, содержащего фильтр) при работе с angularjs:

<script src="js/filter.js" type="text/javascript" async defer></script>

если вы это сделаете, просто удалите 'async defer'.

Ответ 9

Если вы загрузили файл angular.js из Google, вам необходимо убедиться, что у каждого есть доступ для чтения или он не будет загружен вашим HTML файлом. По умолчанию, кажется, загружается без разрешений доступа, поэтому вы также получите сообщение, например:

GET http://localhost/myApp/js/angular.js

Это смутило меня примерно полчаса!