私は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 */
私は同じ問題を抱えていましたが、非常に似た環境_angular 1.5.5
_は常に同じlint警告を受け取ります:
ストリクトモード関数が関数呼び出しを使用して実行される場合、その 'this'値は未定義になります。
コンポーネントのメイン関数の名前を大文字で変更したため、警告が消えた
function MyController($someDirectives, ...){
同じ問題が発生しています。 「 間接呼び出し 」を「関数呼び出し」ではなく、問題の関数で実行しています。「this」は関数本体で何度も参照されています。
私の場合、スクリプト全体をスキャンする前にjsHintが終了するほど多くの「エラー」が発生していました。
これを回避するには、これをスクリプトファイルの先頭に配置します。
/*jshint maxerr: 10000 */
エラーは抑制されませんでしたが、少なくともスクロールして、jsHintによるスクリプト全体の分析を確認できました。