66

JSHint 和以下代码行有点问题。

$location.path('map-' + map.id + '/venue-' + map.attributes.default_venue.value);

我收到错误消息,Identifier 'default_venue' is not in camel case.这通常不会成为问题,但我无法控制变量名称 - 它是通过 JSON API 引入的。

对于受影响的变量或它们出现的行,有什么办法可以抑制这个问题?

抱歉,如果以前有人问过这个问题,我很确定一定是这样,但我找不到解决方案。

4

5 回答 5

130

JSHint 在函数级别遵循指令,因此您可以找到封闭函数并向camelcase其添加选项。这是一个例子:

/*jshint camelcase: true */

var not_camel_case = 1; // Warns

function example() {
  /*jshint camelcase: false */
  var not_camel_case = 2; // Does not warn
}
于 2013-10-18T11:52:19.033 回答
19

根据JSHint Docs,您可以在名为.jshintrc的同一目录中创建一个配置文件,也可以在根目录的任何目录中创建一个配置文件。我只是用这个设置我的:

  {
    "camelcase": false
  }

这里有很多其他选项:http: //jshint.com/docs/options/#camelcase

于 2014-08-27T08:11:19.750 回答
4

我将来自 api 的属性名称放在单独的字符串中。例如:

var defaultVenueAttributeKey = 'default_venue';
$location.path('map-' + map.id + '/venue-' + map.attributes[defaultVenueAttributeKey].value);

它有点冗长,但您可以将来自 API 的所有属性名称分组在一起,然后它可以更轻松地响应 API 更改。

于 2014-11-18T15:41:26.387 回答
-1

接受的答案/*jshint camelcase: true */对我不起作用。我仍然收到错误。

我查看了文档,发现这个解决方案对我有用:

/*eslint camelcase: ["error", {properties: "never"}]*/
于 2017-06-18T07:26:36.813 回答
-6

试试这样的东西。虽然很邪恶,但它会起作用。

var foo;
$.each( jsonArray, function ( i, value ) {
    if ( i === 'array_element' ) {
        foo = value;
    }
});
于 2014-06-30T11:38:33.250 回答