Angular.js: Is .value() the proper way to set app wide constant and how to retrieve it in a controller
angularjs, javascript
Solution
`Module.value(key, value)` is used to inject an editable value, `Module.constant(key, value)` is used to inject a constant value
The difference between the two isn't so much that you "can't edit a constant", it's more that you can't intercept a constant with $provide and inject something else.
// define a value
app.value('myThing', 'weee');
// define a constant
app.constant('myConst', 'blah');
// use it in a service
app.factory('myService', ['myThing', 'myConst', function(myThing, myConst){
return {
whatsMyThing: function() {
return myThing; //weee
},
getMyConst: function () {
return myConst; //blah
}
};
}]);
// use it in a controller
app.controller('someController', ['$scope', 'myThing', 'myConst',
function($scope, myThing, myConst) {
$scope.foo = myThing; //weee
$scope.bar = myConst; //blah
});
Problem
Hi there I was watching a couple of the angular.js videos and saw that the value() method was used to set a kind of module-wide constant. for example, one can set the Angular-UI library's config like so: (coffeescript) ``` angular.module('app',[]) .value "ui.config", tinymce: theme: 'simple' width: '500' height: '300' ``` And my app is currently looking like this: ``` window.app = angular.module("app", [ 'ui']) .config(["$routeProvider", ($routeProvider) -> $routeProvider .when "/users", templateUrl: "assets/templates/users/index.html" controller: IndexUsersCtrl .otherwise redirectTo: "/users" ]) .value 'csrf', $('meta[name="csrf-token"]').attr('content') #<---- attention here IndexUsersCtrl = ($scope) -> $scope.users = gon.rabl console.log "I want to log the csrf value here" #<---- then attention IndexUsersCtrl.$inject = ['$scope'] ``` But I can't seem to get that value by tapping into the 'app' variable which is corresponding to the app module. I read up here on ST and over on angularjs's google group that one way to share common code btwn controllers is through a service, will this concept apply here, too? Thanks!