2014-02-09 6 views
17

ПРИМЕЧАНИЕ. Это проблема WebStorm, а не проблема angular.js.WebStorm - «угловое» не определено

Screencast проблемы: 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 когда я ссылаться на "угловую" Я держу получение этого сообщения «угловой не определено» от JSHint. Как сделать так угловатым, как определено в этом файле, поэтому JSHint перестает жаловаться на это? Это проблема конфигурации? Пожалуйста, порекомендуйте.

WebStorm v7.0.3/Mac OSX v10.9.1

+1

Для людей, которые googled вокруг этого: я использую webstorm10. Я решил это не путем добавления библиотек, а в установлении корня проекта включить my angular.min.js (я использую угловое семя. Сначала я установил свой корень в «путь/в/имя_проекта/приложение», но теперь я установите его в «path/to/project_name». Мой угловой файл находится в «path/to/project_name/bower_components») – jchnxu

ответ

23

Самый первый пример в documentation page of JSHint является следующее:

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

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

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

+1

Спасибо за ваш ответ JB. Я не уверен, что это устраняет проблему. Я не просто пытаюсь заставить JSHint жаловаться на проблему. То, что я хотел бы сделать, это иметь «угловатую» видимость в scratch.js, так что JSHinst не жалуется. Я надеялся, что добавление angular.js в набор библиотек JavaScript, которые WebStorm знает о глобально, исправит, но это не так. – RBR

+0

угловая видимость для scratch.js, поскольку угловая является глобальной переменной. Глобальные переменные видны повсюду, это их точка. –

+1

И в этом проблема. Почему, если угловой видимый глобально, т. Е. Находится в пределах области scratch.js, является ли JSHint еще «угловым не определено»? – RBR

2

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

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

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

Перейти к settings > inspections > JavaScript > General и снять отметку "unresolved JavaScript variable" и "unresolved JavaScript function".

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

+0

Установленный плагин AngularJS, но это, похоже, не устранило проблему. Все еще видя, что «угловатое» сообщение не определено. Но, я получаю некоторые другие приятные функции. Поэтому спасибо за рекомендацию. – RBR

3

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

Я YEOMAN (года угловое) на эшафот основного проекта и получил те же «угловой не определена» проблем в WebStorm 8 (где у меня есть плагин AngularJS по умолчанию). Тем не менее, я видел, как другие делают это и не имеют такой же проблемы.

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

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

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

36

В

Webstorm settings > JavaScript > Code Quality Tools > JSHint 

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

+2

Поскольку этот вопрос касается Webstorm + JSHint + Angular, я думаю, что этот ответ правильный.) Спасибо, искал его. Работает и в PhpStorm. – ByScripts

+1

Также зайдите в Настройки/JavaScript/Библиотеки и убедитесь, что Angular указан с включенным флажком Enabled. – TrueWill

+0

Это замечание от @TrueWill помогло с требованием узла, тогда как добавление «require» к .jshintrc не сработало. –

0

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

File > Settings 

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

Languages & Frameworks > JavaScript > Libraries 

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

Смежные вопросы