Ist es möglich, eine Liste aller von mir definierten Winkel-Controller zu bekommen? Im Wesentlichen möchte ich in der Lage sein zu bestimmen, welche files
ich importieren muss (diejenigen, die ich schrieb), je nachdem, welche verwendet werden. Der einzige Weg, an den ich denken kann, ist, durch den HTML-Code zu gehen und alle Werte zu finden, die mit ng-controller
verbunden sind, aber ich habe mich gefragt, ob es eine sauberere, robustere Methode gab.Holen Sie sich alle Winkel-Controller
Antwort
Try _invokeQueue
verwenden Es könnte sein, was Sie suchen:
angular.module('MyApp')['_invokeQueue'].forEach(function(value){ console.log(value[2][0]) })
Die _invokeQueue mit jedem Dienst bevölkert ist, die mit dem Modul mit dem vertrauten angular.module ('MyModule hinzugefügt wird ') .controller, angular.module (' myModule '). directive et al. Anrufe. Jeder Eintrag in der Warteschlange ist ein Array mit drei Elementen. Der erste ist der Provider, der den Dienst aufruft, der zweite ist die Methode, die der Provider verwendet, und das dritte Element ist ein Array aller Argumente, die an den Dienst übergeben werden.
Sie können dies tun, indem Sie die _invokeQueue
Eigenschaft des Moduls, wie in this example
var appModule = angular.module('plunker',[]);
angular.module('plunker').controller('TestCtrl', function(){});
angular.module('plunker').controller('TestCtrl2', function(){});
angular.module('plunker').controller('MainCtrl', function($scope) {
$scope.controllers = appModule._invokeQueue.filter(function(el){
return el[0] === "$controllerProvider";
}).map(function(el){
return el[2]["0"];
});
});
gezeigt
In jeder Ihrer vorhandenen Controller, kopieren und den folgenden Code eingefügt wird listen Sie alle Ihre Controller auf.
Hinweis: Bitte ändern Sie Ihre Anwendungsvariable mit 'app'.
var app = angular.module('myApp',[]);
angular.element(document).ready(function(){
var values = app._invokeQueue;
angular.forEach(values, function(value, key) {
if(value[0] == '$controllerProvider'){
console.log(value[2][0]);
}
});
});
- 1. Holen Sie sich alle geöffneten Excel-Dokumente
- 2. Codeigniter - Holen Sie sich alle Benutzer Sitzungsdaten
- 3. PHP DOM: Holen Sie sich alle Textwerte
- 4. Holen Sie sich alle Speicherpfade in Android
- 5. Holen Sie sich alle Formen in ShapeGroup
- 6. Holen Sie sich alle Zellen in CollectionView
- 7. Powershell Holen Sie sich alle optischen Laufwerksbuchstaben
- 8. Holen Sie sich alle Elemente iframe
- 9. Holen Sie sich alle Einstellungen von PreferenceFragment
- 10. Nodejs nexpect: Holen Sie sich alle Ausgabezeilen
- 11. Holen Sie sich alle untergeordneten Knoten rekursiv
- 12. Holen Sie sich alle Operationen von AzMan
- 13. Holen Sie sich alle ALT-Tags
- 14. Holen Sie sich alle Produkte eines Arrays
- 15. Holen Sie sich alle inertext VBA
- 16. Holen Sie sich alle Nachrichten und alle Kommentare
- 17. Holen Sie sich Benutzer und füllen Sie alle Berechtigungen
- 18. Holen Sie sich Fotoreferenz
- 19. HtmlAgilityPack Holen Sie sich alle Links in einem DIV
- 20. Holen Sie sich alle Artikel von Cursor in Android
- 21. Holen Sie sich alle Ordner/Verzeichnisse Liste in VB.net
- 22. Holen Sie sich alle Werte von MySQL und dann Variablen
- 23. Holen Sie sich alle registrierten Implementierungen einer Schnittstelle in Autofac
- 24. Holen Sie sich alle Tabellen von information_schema, MySQL
- 25. Keycloak - Holen Sie sich alle Rollen abgebildet Benutzer
- 26. Holen Sie sich alle Klassen in Parse-Server
- 27. Holen Sie sich alle Quickblox Gruppen Liste von Server
- 28. Holen Sie sich alle Werte von HTML-Wörterbuch-Attribut
- 29. ASP.net-Identität 2.1 Holen Sie sich alle Benutzer mit Rollen
- 30. Holen Sie sich alle Elemente in einem NodeCollections
Ich bin froh, dass Sie nicht mit Ihrer ursprünglichen Idee gingen, weil ... Wenn Sie durch die HTML durchlaufen würden Sie keine Controller finden, wenn Menschen wurden mit ** ui-Router ** und 'controllerAs '. – byxor
@BrandonIbbotson Es ist mehr eine hauseigene Hacky-Lösung, und alle Controller verwenden 'ng-Controller', so dass es kein allzu großes Problem wäre. Ich kenne "UI-Router", aber es wird nicht dafür verwendet. Irgendwelche Vorschläge? –
'ngRoute' erlaubt es auch, Controller für ein bestimmtes HTML in js config Dateien zu definieren. – nubinub