2016-08-08 8 views
-1

Was besser ist, wenn ein Controller in AngularJS erstellen:AngularJs, Was ist besser beim Erstellen eines Controllers?

1-

angular.module('myApp') 
.controller('MyController',['$scope','dependencies','myService', function($scope, dependencies, myService) { 

}]); 

2-

angular.module('myApp') 
.controller('MyController', function($scope, dependencies, myService) { 

}); 

Antwort

2

Performance weise, ist der erste technisch besser, obwohl diese Kosten wahrscheinlich vernachlässigbar ist. Wenn Sie es auf die zweite Art tun, ruft angular wörtlich die Funktion .toString() für Ihre Controller-Funktion auf und analysiert dann die Zeichenfolge, um die Abhängigkeiten zu bestimmen. Sie können sie also entweder selbst deklarieren, oder eckig analysiert Ihre Funktion als String, um sie zu bestimmen.

Als Entwickler finde ich es einfacher, die zweite Version zu lesen und zu schreiben. Seien Sie sich bewusst, dass Sie die Dinge in das erste Formular ändern müssen, wenn Sie Ihren Code hüllen oder verkleinern möchten. Einige Tools erledigen das automatisch für Sie (z. B. ngAnnotate), sodass Sie es auf die zweite Art schreiben können, es aber auf die erste Art und Weise bereitstellen.

+0

„bewusst sein, nur dass Sie die Dinge in die erste Form ändern müssen“ kann u bitte erklären mehr, was die Dinge? –

+0

Mit "Dinge ändern" meinte ich, dass Sie alle Ihre Syntax für die Abhängigkeitsinjektion in das erste Formular ändern sollten, wenn Sie Ihren JavaScript-Code hüllen oder verkleinern möchten. – matmo

1

Mit dieser Methode haben Sie den Vorteil der Funktion Heben, Funktionsname für das Debuggen, Fähigkeit, $ inject mutieren; auch einfacher über & Debugging zu begründen.

function myController(){ 
 
    
 
} 
 
myController.$inject = ['$scope','dependencies','myService']; 
 
angular.module('myApp' ,myController);

Verwandte Themen