JShint和以下代码行存在一些问题。
$location.path('map-' + map.id + '/venue-' + map.attributes.default_venue.value);
我收到错误,Identifier 'default_venue' is not in camel case.
这通常不会成为问题,但我对变量名称没有任何控制权 - 它是通过JSON API引入的。
对于受影响的变量或它们出现的行,我有什么办法可以解决这个问题吗?
如果之前有人问过这个道歉,我很确定它一定是,但我找不到解决方案。
答案 0 :(得分:125)
JSHint在函数级别遵循指令,因此您可以找到封闭函数并为其添加camelcase
选项。这是一个例子:
/*jshint camelcase: true */
var not_camel_case = 1; // Warns
function example() {
/*jshint camelcase: false */
var not_camel_case = 2; // Does not warn
}
答案 1 :(得分:19)
根据JSHint Docs,您可以在名为 .jshintrc 的同一目录中创建配置文件,或者将任何目录创建到根目录。我只是用它来设置我的:
{
"camelcase": false
}
答案 2 :(得分:4)
我将来自api的属性名称放在一个单独的字符串中。 E.g:
var defaultVenueAttributeKey = 'default_venue';
$location.path('map-' + map.id + '/venue-' + map.attributes[defaultVenueAttributeKey].value);
它有点冗长,但您可以将来自API的所有属性名称组合在一起,然后它可以更轻松地响应API。
答案 3 :(得分:-2)
接受的答案/*jshint camelcase: true */
对我不起作用。我还是得到了错误。
我查看docs,发现这个解决方案对我有用:
/*eslint camelcase: ["error", {properties: "never"}]*/
答案 4 :(得分:-6)
尝试这样的事情..虽然邪恶,但它会起作用。
var foo;
$.each( jsonArray, function ( i, value ) {
if ( i === 'array_element' ) {
foo = value;
}
});