2013-06-22 1 views
0

Предполагая, что мое приложение имеет переменную «globalFruits», которая отслеживает все «фрукты» в моем приложении.Как правильно включить глобальные переменные и обновить их в Angular JS?

вар globalFruits = {}

globalFruits [ 'груша'] = {имя: 'груша', цвет: 'зеленый'}; globalFruits ['Apple'] = {name: 'Apple', цвет: 'Blue'};

Как включить эту глобальную переменную в мое приложение AngularJS, чтобы у меня были директивы или области действия, которые могут вызвать это и проверить состояние? Или это не способ AngularJS?

+0

если он глобальный, вы можете назвать его угловым? – bingjie2680

+0

Я знаю, как объявить его без использования angularJS, но я хотел знать, было ли какое-то правильное соглашение для этого. Особенно, когда, скажем, я хочу, чтобы globalFruits мог влиять на некоторые элементы пользовательского интерфейса на несколько аспектов моей страницы. – 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> 

Для отладки области видимости переменных в вашем браузере, вы можете установить и использовать расширение AngularJS Batarang для Google Chrome.

Подробнее: http://docs.angularjs.org/guide/scope