2016-07-14 1 views
0

J'essaie de créer des constantes js en js angulaire pour une application. J'utilise le code ci-dessous pour implémenter des constantes pour l'ensemble de l'application. Ça fonctionne bien.Définir les constantes globales dans AngularJs

<code> 
// app.js 
angular.module('myApp', [ 
     'ngCookies', 
     'ngResource', 
     'ngSanitize', 
     'ngRoute' 
    ]) 
    .constant('config', { 
     mySetting: 42 
    }) 
    .config(function ($routeProvider) { 
     $routeProvider 
      .when('/', { 
       templateUrl: 'views/main.html', 
       controller: 'MainCtrl' 
      }) 
      .otherwise({ 
       redirectTo: '/' 
      }); 
    }); 
</code> 

Ma préoccupation est app.js fichier que je veux écrire que le routage, pour les constantes que je veux écrire fichier séparé et je vais appeler même dossier pour tous les contrôleurs dans ma demande.

Pour l'application entière pourrait être 200 + constantes que je veux déclarer, donc je veux faire c'est fichier séparé ou diviser les fichiers de constantes pour les contrôleurs sages.

S'il vous plaît me guider dans quel chemin est facile pour la maintenance.

Merci à l'avance

Répondre

1

Vous pouvez définir des constantes de cette façon

app.value('config', { 
    "key1": "value1", 
    "key2": "value2" 
}); 

et dans le contrôleur, vous pouvez accéder à cette façon config.key1 OU config.key2. De cette manière, vous pouvez définir des constantes aussi précises que vous le souhaitez.

Remarque: Ne pas oublier de donner référence/injecter à config.

Cordialement

+2

Utiliser '.constant' à la place, puisque' objets .value' sont censés être changés. De plus, vous ne pouvez pas injecter '.value' dans les méthodes de configuration. – Narayon

1

Vous pouvez également maintenir un fichier séparé en utilisant un autre module pour gérer tous vos services, usine, ou valeur constante. Pour gérer vos constantes le code ci-dessous vous donnera et idée

Par exemple:

inclure votre fichier app.js après que votre fichier script constant.js

var myApp = angular.module("myApp", ['myConstants']); //constants module injection 
myApp.controller("myController", ["$scope", "myValue", function() { 
.... 
}]); 

dans votre constant.js

angular.module("myConstants", []).constant('myValue', 'The value'); 

Pour plus de compréhension, référez-vous à http://www.learn-angular.org/#!/lessons/handling-complexity

0

Lets Supposons que vous voulez avoir une ServiceUrl constante nommée dans votre application .Ici est un moyen simple

angular.module('myApp', ['ngRoute']) 
.value('serviceUrl','http://localhost:8080/hello') 

« ngRoute » est facultative. ignorez-le au cas où votre application n'utilise pas ngRoute.

peut y accéder à l'intérieur d'un service que l'affichage des données

angular.module('myApp'). 
service('myService', ['$http', 'serviceUrl',function($http,serviceUrl){ 
    this.getData= function(data){ 
     console.log(JSON.stringify(data)); 
     return $http({ 
      method: 'POST', 
      url: serviceUrl 
      data: data 
     }) 

}}