2017-02-20 33 views
11

Piszę aplikację internetową angularjs (v1.5), więc mam kilka kontrolerów, aw tych kontrolerów Często jestem deklarując coś takiego:Jak wyłączyć ostrzeżenia o "tym" i trybie ścisłym przy użyciu JSHint?

function myController($someDirectives, ...){ 
    var ctrl = this; 
    // My code 
} 

Rzecz kiedy JSHint mój kod, otrzymuję ten komunikat ostrzegawczy dla wszystkich moich "to" zadeklarowanych w kontrolerach:

Jeśli funkcja trybu ścisłego jest wykonywana za pomocą wywołania funkcji, jej "ta" wartość będzie niezdefiniowana.

Muszę sprecyzować, że w moim pliku .jshintrc ustawiłem "strict":false. Czy ktoś wie, jak wyłączyć tę wiadomość w szczególności?

Z góry dziękuję.

+0

nie jestem w stanie przetestować, ale myślę, że w przypadku zmiany nazwy funkcji do MyController, jest następnie uznany jako funkcja konstruktora i że błąd ten nie zostanie podany. Daj temu szansę. – Ken

+0

Mam ten sam problem. W danym przypadku funkcja rekursywna jest przekazywana "this" przez functionName.call. –

+1

Rzeczywiście, sugestia Kena wydaje się działać. Dla mnie prostsze jest dodanie '" validthis ": true' w moim pliku .jshintrc. – NathanL

Odpowiedz

15

ustawić konfigurację w .jshintrc pliku

{ 
    "validthis": true // Tolerate using this in a non-constructor 
} 
+0

Tego właśnie szukałem. Dziękuję Ci. – NathanL

0

Mam ten sam problem. Robię "indirect invocation" z daną funkcją, a nie "wywoływanie funkcji", a "to" odwołuje się wiele razy w treści funkcji.

W moim przypadku miałem tak wiele z tych "błędów", które jsHint zakończył przed skanowaniem całego mojego skryptu.

Aby obejść ten problem kładę to na szczycie mojego skryptu akt:

/*jshint maxerr: 10000 */ 

To nie tłumiły błędy, ale przynajmniej pozwolił mi przewinąć w dół, aby zobaczyć analizę jsHint na całego scenariusz.