2013-06-22 27 views
0

假設我的應用程序有一個變量「globalFruits」,用於跟蹤我的應用程序中的所有「Fruits」。如何正確包含全局變量並在Angular JS中更新它們?

變種globalFruits = {}

globalFruits [ '梨'] = {名稱: '梨',顏色: '綠色'}; globalFruits ['Apple'] = {name:'Apple',color:'Blue'};

這個全局變量應該如何包含在我的AngularJS應用程序中,以便我可以有可以調用它並檢查其狀態的指令或範圍?或者那不是AngularJS的方式?

+0

如果它是全球性的,你可以從角度調用它? – bingjie2680

+0

我知道如何在不使用angularJS的情況下聲明它,但我想知道是否有適當的約定來做到這一點。特別是當我說,我希望globalFruits能夠影響我的頁面的多個方面的某些UI元素。 – Setsuna

回答

2

你可以爲你的模塊定義value

app.value('globalFruits', { 
    Pear: {name:'Pear', color:'green'}, 
    Apple: {name:'Apple', color:'Blue'} 
); 

然後,當你想用它來工作,你可以注入該值

app.controller('MyController', ['$scope', 'globalFruits', function($scope, globalFruits) { 
    $scope.globalFruits = globalFruits; 
}]); 
0

有一個$rootScope模型,該模型可用於類似的事情

app.config(['$rootScope', function ($rootScope) { 
    $rootScope.fruits = [ 
     {name:'Pear', color:'green'}, 
     {name:'Apple', color:'Blue'} 
    ]; 
}]); 

,你可以在你的HTML視圖照常使用:

<ul> 
    <li ng-repeat="fruit in fruits">{{ fruit.name }}</li> 
</ul> 

要在瀏覽器調試範圍的變量,您可能需要爲Google Chrome安裝並使用AngularJS Batarang擴展程序。

更多信息http://docs.angularjs.org/guide/scope