2013-07-06 18 views
5

Come posso recuperare il nome dell'app corrente in AngularJS?
Intendo il valore ng-app="foo".
Ho cercato attraverso la documentazione dell'API, ma non ho trovato alcun riferimento a questo.Recupera nome app AngularJS

mia soluzione
realtà ho trovato soluzione come questa

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

Ma non mi piace molto l'idea di cercare attraverso il DOM solo per ottenere queste informazioni.
Conosci una soluzione migliore?

risposta

15

Dalle $rootElement documentazione:

L'elemento principale di applicazione angolare. Questo è l'elemento in cui è stata dichiarata ngApp o l'elemento è passato in angular.bootstrap .

Se iniettare è possibile ottenere il nome del modulo principale senza la scansione del DOM:

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

Posso recuperare il $ rootElement da un servizio angolare? Ne ho bisogno, ma non ho una variabile $ scope nel mio servizio. – pasine

+0

Inseriscilo semplicemente nel tuo servizio, nello stesso modo in cui lo immetteresti nei controller. Non hai bisogno di $ scope. – Stewie

+0

Non ero in grado di iniettarlo poiché ho usato .service invece di .factory per creare il mio servizio. Adesso funziona tutto bene. Grazie! – pasine

Problemi correlati