2016-06-08 3 views
2

Ich möchte einige Aufzählungen erklären, die von überall in meiner Anwendung zugegriffen werden global soll, zB:Wie deklariert enums in angularjs?

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

Frage: Wo und wie muss ich withint eine angularjs App diese Aufzählungen erklären?

main.js: entsprechend

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

möchte ich sie später für den Zugriff auf AIState.Asleep verwenden, so konnte ich sie als Parameter übergeben und meine Logik delegieren.

+0

Ok dann, was sind Möglichkeiten empfohlen innerhalb der Enumeration zu erklären? – membersound

+0

Fragen Sie nach einer Möglichkeit, eine Reihe von Enum-ähnlichen Konstanten zu erstellen? JavaScript hat keine native Enum-Funktion. – Pointy

+0

Ja, wahrscheinlich frage ich das ... aus der 'Java'-Sicht. – membersound

Antwort

2

Verwendung constant

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

können Sie constant als Abhängigkeit injizieren und es

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

Grundsätzlich können Sie constant oder value verwenden können.

einige Referenzen

  1. Constant

  2. Value

+0

Aber wie könnte ich später über 'AState.Asleep' darauf zugreifen? – membersound

+1

können Sie es als Abhängigkeit injizieren und kann es in jedem Controller, Direktive, Dienste etc. – murli2308

+0

Dies ist nicht enum, das ist Schlüssel-Wert-Paar, und ich möchte Schlüssel und Wert nicht duplizieren – tytyryty