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

WebStorm - "angular" не определен

ПРИМЕЧАНИЕ. Это проблема WebStorm, а не проблема angular.js.

Сценарий проблемы: http://f.cl.ly/items/302s0d1k1i3i1B2p0W09/ws703-angular-not-defined.mp4

Описание:

В моем файле index.html есть следующее:

<script src="vendor/js/angular.min.js"></script>
<script src="app/js/scratch.js"></script>

В scratch.js, когда я ссылаюсь на "angular", я продолжаю получать это сообщение "angular не определено" от JSHint. Как это сделать, чтобы angular рассматривался как определенный в этом файле, поэтому JSHint перестает жаловаться на это? Это проблема конфигурации? Просьба сообщить.

WebStorm v7.0.3/Mac OSX v10.9.1

4b9b3361

Ответ 1

Самый первый пример на странице документации JSHint заключается в следующем:

Файл конфигурации - это простой JSON файл, который указывает, какие параметры JSHint включить или выключить. Например, следующий файл включит предупреждения о undefined и неиспользуемых переменных и сообщит JSHint о глобальной переменной с именем MY_GLOBAL.

{
  "undef": true,
  "unused": true,
  "globals": { "MY_GLOBAL": false }
}

Замените MY_GLOBAL на angular, и у вас больше не будет этого предупреждения JSHint.

Ответ 2

В

Webstorm settings > JavaScript > Code Quality Tools > JSHint 

имеется строка "Предопределенная". Нажмите "Установить" рядом с ним. Здесь вы можете добавить все предопределенные переменные.

Ответ 3

В случае, если это помогает:

Я использовал yoman (yo angular), чтобы подстроить базовый проект и получил ту же проблему "angular не определена" в WebStorm 8 (где у меня есть плагин AngularJS по умолчанию). Тем не менее, я видел, как другие делают это и не имеют той же проблемы.

Выбранное выше решение правильное в JSHint необходимо рассказать о глобальной переменной с именем "angular". Однако, если вы используете yoman, требуемые параметры конфигурации уже будут определены в .jshintrc(файл в вашем каталоге под открытым небом).

Итак, все, что вам нужно сделать, это использовать JSHint в качестве настроек по умолчанию для проекта. Для этого я нашел следующий поток SO, полезный для явного определения местоположения этого файла конфигурации. JSHint ведет себя по-разному в Webstorm и Grunt

В WebStorm 8 вы увидите опцию "Использовать конфигурационные файлы" - проверка того, что будет автоматически искать файл .jshintrc в вашей иерархии проектов. При выборе этого параметра 'angular не будет определен. Проблема исчезнет навсегда.

Ответ 4

Перейдите в Settings > Plugins и загрузите плагин AngularJS для WebStorm. Это первое, что я сделал, прежде чем использовать AngularJS с WebStorm, и я никогда не видел этой проблемы.

В версии 8 WebStorm будет полностью запущен AngularJS, но на данный момент этот плагин должен помочь.

Изменить: Хорошо, я думаю, что я нашел другое возможное решение. Как вы сказали, это проблема WebStorm. В коде нет фактической ошибки, это просто проверка кода. Вы можете отключить эту проверку следующим образом:

Перейдите к settings > inspections > JavaScript > General и снимите флажки "unresolved JavaScript variable" и "unresolved JavaScript function".

Это должно привести к ошибке. Я нашел это, пройдя учебник AngularJS по Pluralsight.

Ответ 5

Чтобы WebStorm (2016+) правильно распознал углы и даже включил завершение кода, просто перейдите по ссылке:

File > Settings

Затем в левой части выберите:

Languages & Frameworks > JavaScript > Libraries

Отметьте флажок рядом с 'angular' и нажмите "Применить". Если angular не отображается в списке, вам нужно нажать "Добавить" и перейти туда, где вы загрузили библиотеку.