2016-06-08 133 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

您是否想要创建一组枚举常量的方法? 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']; 
}); 

基本上你可以使用constantvalue

一些参考

  1. Constant

  2. Value

+0

但我怎么能通过'AIState.Asleep'访问它们? – membersound

+1

你可以注入它作为依赖,并可以在任何控制器,指令,服务等使用它 – murli2308

+0

这不是枚举,这是键值对,我不想重复键和值 – tytyryty