Si encuentras algún fallo con tu código o proyecto, recuerda probar siempre en un entorno de testing antes añadir el código al proyecto final.
Solución:
Una manera fácil de hacer esto es así:
var myApp = angular.module("exampleApp",[]);
myApp.constant('RESOURCES', (function()
// Define your variable
var resource = 'http://127.0.0.1:8008';
// Use the variable in your constants
return
USERS_DOMAIN: resource,
USERS_API: resource + '/users',
BASIC_INFO: resource + '/api/info'
)());
Y usa las constantes así:
myApp.controller("ExampleCtrl", function(RESOURCES)
$scope.domain = RESOURCES.USERS_DOMAIN;
);
Creditos: enlace
La forma de AngularJS para definir dependencias entre Controladores, Servicios y otros es mediante inyección de dependencia (DI). Entonces, si tiene un controlador A que depende de un servicio B, tendría que crearlo así:
var myApp = angular.module("exampleApp",[]);
myApp.controller("aCtrl", function(serviceB)
// Controller functionally here
);
Mira, AngularJS verificará la dependencia del servicio B y buscará el servicio que creaste con ese nombre. Si no crea uno obtendrá un error.
Entonces, si desea crear una constante A que dependa de la constante B, deberá decirle a angular que A depende de B. Pero una constante no puede tener una dependencia. Una constante puede devolver una función, pero la DI no funcionará para la constante. Verifique este Fiddle para que pueda ver para qué métodos funciona DI.
Entonces, respondiendo a su pregunta, no puede definir una constante con otras constantes.
Pero puedes hacer esto:
angular.module('projectApp', [])
.constant('domain', 'http://somedomain.com')
.constant('api', '/some/api/info')
.service('urls', function(domain, api) this.apiUrl = domain + api;)
.controller('mainCtrl',function($scope,urls)
$scope.url = urls.apiUrl;
);
Compruebe este violín para verlo funcionar:
Si desea obtener más información sobre DI, consulte esta publicación.
Lo hago de esta manera:
var constants = angular.module('constants', []);
constants.factory("Independent", [function()
return
C1: 42
]);
constants.factory('Constants', ["Independent", function(I)
return
ANSWER_TO_LIFE: I.C1
]);