2016-06-08 3 views
2

Я хотел бы объявить некоторые перечислений, которые должны быть глобально доступны из любого места в моем приложении, например:Как объявить перечисления в angularjs?

enum AIState { Asleep, Idling, Chasing, Fleeing, HavingLunch }; 

Вопрос: где и как я должен объявить эти перечислений withint в angularjs приложения?

main.js:

var myApp = angular.module('myApp', []); 
myApp.config(...); 

позже я хочу, чтобы получить доступ к ним с помощью AIState.Asleep, чтобы я мог передать их в качестве параметра и делегировать мою логику соответственно.

+0

Хорошо то, что рекомендуются способы объявить перечисление внутри? – membersound

+0

Вы запрашиваете способ создания набора enum-подобных констант? JavaScript не имеет встроенного средства перечисления. – Pointy

+0

Да, возможно, я прошу об этом ... с точки зрения «java». – membersound

ответ

2

использование constant

angular 
    .module('myApp', ['ngRoute']) 
    .constant("myConfig", { 
     "key": "value" 
    }) 

вы можете вводить constant как зависимость и может использовать его

myApp.controller('myButton', ['myConfig', function(myConfig) { 
    var k = myConfig['key']; 
}); 

В принципе вы можете использовать constant или value.

некоторые ссылки

  1. Constant

  2. Value

+0

Но как я могу получить доступ к ним через 'AIState.Asleep'? – membersound

+1

вы можете использовать его как зависимость и можете использовать его в любом контроллере, директиве, сервисах и т. Д. – murli2308

+0

это не перечисление, это пара ключевых значений, и я не хочу дублировать ключ и значение – tytyryty

Смежные вопросы