我正在使用AngularJS(v1.5)编写一个Web应用程序,所以我有一些控制器,在那些控制器中,我经常声明:
function myController($someDirectives, ...){
var ctrl = this;
// My code
}
问题是当我JSHint我的代码时,我得到控制器中声明的所有'this'的警告消息:
如果使用函数调用执行严格模式函数,则其“this”值将是未定义的。
我必须准确地说,在我的.jshintrc文件中,我设置了"strict":false
。有谁知道如何禁用此消息?
提前致谢。
在.jshintrc
文件中设置配置
{
"validthis": true // Tolerate using this in a non-constructor
}
您始终可以在代码块中覆盖jshint options,即。
/* jshint validthis: true */
我有同样的问题。我正在使用有问题的函数执行“indirect invocation”,而不是“函数调用”,并且在函数体中多次引用“this”。
在我的情况下,我有很多这些“错误”,jsHint在扫描整个脚本之前就退出了。
为了解决这个问题,我把它放在脚本文件的顶部:
/*jshint maxerr: 10000 */
它没有抑制错误,但至少它允许我向下滚动以查看jsHint对整个脚本的分析。
我有同样的问题,环境非常相似angular 1.5.5
总是得到相同的lint警告:
如果使用函数调用执行严格模式函数,则其“this”值将是未定义的。
我已经更改了组件主要功能的名称,从大写开始,警告消失了
function MyController($someDirectives, ...){