2013-07-06 98 views
5

如何檢索AngularJS中當前應用程序的名稱?
我的意思是ng-app="foo"的值。
我已經通過API文檔搜索,但我找不到任何這方面的參考。檢索AngularJS應用程序名稱

我的解決方案
這樣

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

其實我已經找到了解決方案,但我真的不喜歡這個主意,通過DOM搜索只是爲了得到這個信息。
你知道更好的解決方案嗎?

回答

15

$rootElement文檔:

角申請的根元素。這要麼是 ngApp聲明的元素,要麼是傳入 angular.bootstrap的元素。

如果你注入它,你可以讓主模塊名稱而無需掃描DOM:

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

我可以從中檢索的角度服務$ rootElement的?我需要它,但我的服務中沒有$ scope變量。 – pasine

+0

只需將它注入到服務中,就像將其注入到控制器中一樣。你不需要$ scope。 – Stewie

+0

我無法注入它,因爲我使用.service而不是.factory來創建我的服務。現在一切正常。謝謝! – pasine

相關問題