Игнорировать переменную camelcase в JSHint
имея немного проблемы с JShint и следующей строкой кода.
$location.path('map-' + map.id + '/venue-' + map.attributes.default_venue.value);
Я получаю ошибку,Identifier 'default_venue' is not in camel case.
обычно это не проблема, но у меня нет никакого контроля над именем переменной - он вводится через JSON API.
есть ли способ подавить эту проблему для затронутых переменных или для строк, в которых они появляются?
извинения если это спрашивали раньше, я уверен, что это должно было быть, но я не могу найти решение.
5 ответов
JSHint подчиняется директивам на уровне функции, поэтому вы можете найти заключительную функцию и добавить к нему. Вот пример:
/*jshint camelcase: true */
var not_camel_case = 1; // Warns
function example() {
/*jshint camelcase: false */
var not_camel_case = 2; // Does not warn
}
по словам JSHint Docs, вы можете сделать конфигурационный файл в том же каталоге под названием .jshintrc, или любой каталог до самого корневого каталога. Я просто установил свой, используя это:
{
"camelcase": false
}
здесь есть множество других опций:http://jshint.com/docs/options/#camelcase
я помещаю имя свойства, поступающего из api, в отдельную строку. Например:
var defaultVenueAttributeKey = 'default_venue';
$location.path('map-' + map.id + '/venue-' + map.attributes[defaultVenueAttributeKey].value);
это немного более подробно, но вы можете сгруппировать все имена свойств, поступающие из вашего API вместе, а затем это упрощает ответ на изменение API.
принятый ответ /*jshint camelcase: true */
не работает для меня. Я все еще получаю ошибки.
Я смотрю на docs и нашел это решение, которое сработало для меня:
/*eslint camelcase: ["error", {properties: "never"}]*/
попробуйте что-то вроде этого.. Хотя это и нечестиво, но сработает.
var foo;
$.each( jsonArray, function ( i, value ) {
if ( i === 'array_element' ) {
foo = value;
}
});