2013-07-06 7 views
5

Wie kann ich den Namen der aktuellen App in AngularJS abrufen?
Ich meine die ng-app="foo" Wert.
Ich habe die API-Dokumentation durchsucht, konnte aber keinen Hinweis darauf finden.Abrufen AngularJS App-Name

meine Lösung
Eigentlich habe ich gefunden Lösung wie diese

angular.element($('[ng-app]')).attr('ng-app'); 

Aber ich weiß nicht wirklich wie die Idee, durch DOM zu suchen nur diese Informationen zu erhalten.
Kennen Sie eine bessere Lösung?

Antwort

15

Aus dem $rootElement docs:

Das Wurzelelement der Angular-Anwendung. Dies ist entweder das Element, in dem ngApp deklariert wurde oder das Element an angular.bootstrap übergeben wurde.

Wenn Sie es injizieren Sie das Hauptmodulnamen ohne das Scannen des DOM erhalten können:

<html ng-app="myApp"> 
... 
app.controller('MyCtrl', 
    [ 
    '$scope', 
    '$rootElement', 
    function($scope, $rootElement) { 
     console.log($rootElement.attr('ng-app')); // --> myApp 
    } 
    ] 
); 
+0

Kann ich rufen Sie die $ rootElement von einem Winkel Service? Ich brauche es dort, aber ich habe keine $ Scope-Variable in meinem Dienst. – pasine

+0

Einfach in Ihren Service injizieren, so wie Sie es in Controller injizieren würden. Sie brauchen $ scope nicht. – Stewie

+0

Ich konnte es nicht injizieren, da ich .service anstelle von .factory verwendet habe, um meinen Dienst zu erstellen. Alles funktioniert jetzt gut. Vielen Dank! – pasine

Verwandte Themen