2016-07-14 6 views
0

Я пытаюсь создать константы js-файла в угловых js для приложения. Я использую ниже код для реализации констант для всего приложения. Он работает нормально.Установить глобальные константы в 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> 

Моя забота в app.js файле я хочу написать только маршрутизацию, для констант Я хочу написать отдельный файл, и я буду называть тот же файл для всех контроллеров в моем приложении.

Для всего приложения может быть 200+ констант, которые я хочу объявить, поэтому хочу сделать это отдельным файлом или файлом сплит-констант для контроллеров.

Просьба указать, какой путь прост в обслуживании.

Заранее спасибо

ответ

1

Вы можете определить константы таким образом

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

и в контроллере вы можете получить доступ к так config.key1 ИЛИ config.key2. Таким образом, вы можете определить константы по мере необходимости.

Примечание: Не забудьте указать ссылку/ввести config.

С уважением

+2

Используйте '.constant' вместо этого, так как' .value' объекты предназначены быть изменены. Кроме того, вы не можете вводить '.value' в методы конфигурации. – Narayon

1

Вы также можете поддерживать отдельный файл с помощью другого модуля для обработки всех постоянная, фабрик, услуги или стоимости. Для того, чтобы обрабатывать ваши константы ниже код даст вам и идее

Например:

включает файл app.js после этого файла сценария constant.js

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

в вашем constant.js

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

Для лучшего понимания см. http://www.learn-angular.org/#!/lessons/handling-complexity

0

Давайте предположим, что вы хотите иметь постоянную имени serviceUrl в приложении .Здесь простой способ

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

«ngRoute» является необязательным. игнорируйте его, если ваше приложение не использует ngRoute.

доступа к нему внутри службы, размещения некоторых данных

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 
     }) 

}}