2017-08-03 58 views
0

使用帶有JSHint擴展名和Angular的括號。以小寫字母命名的括號中的JSHint錯誤消息

對於這個角服務腳本JSHint沒有顯示錯誤:

(function() { 
    'use strict'; 

    angular.module('randomApp') 
     .service('Ab', Ab); 

    Ab.$inject = []; 

    function Ab() { 
     this.getWorkflows = function() { 
      return; 
     }; 
    } 
})(); 

,但如果我更改服務的名稱爲小寫:

(function() { 
    'use strict'; 

    angular.module('randomApp') 
     .service('ab', ab); 

    ab.$inject = []; 

    function ab() { 
     this.getWorkflows = function() { 
      return; 
     }; 
    } 
})(); 

的錯誤JSHint說顯示出來:

如果使用函數調用執行嚴格模式函數,它的'this'值將是未定義的

編輯:錯誤甚至更低的情況下,如果我把服務聲明中的功能消失:

(function() { 
    'use strict'; 

    angular.module('randomApp') 
     .service('aB', function() { 
      this.getWorkflows = function() { 
       return; 
      }; 
     }); 
})(); 

回答

0

你應該以大寫字母開始的服務名,我有同樣的問題,我用我的服務解決了它名字與帽子。 這是爲了定義一個服務或控制器以正確的方式: -

(function() { 
'use strict'; 

angular.module('randomApp') 
    .service('Ab', Ab); 

Ab.$inject = []; 

function Ab() { 
    this.getWorkflows = function() { 
     return; 
    }; 
} 
})(); 
+0

此建議使用小寫:https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#工廠和服務名稱 – neptune

+0

但我用來聲明我的服務的方式解決了我的問題,您應該嘗試並請讓我知道它是否無效 –