now I have some experience dealing with angularjs I wonder often how to having global functions (commonly used in many controllers) accessibles in the whole app. my problem is $scope is only accesible in its controller, I can imagine a solution adding these functions to $rootScope, but for now I only have added variables to $rootScope, I don't know how to add functions and, specially, where do that.
Asked
Active
Viewed 2,079 times
2 Answers
3
If you are using it on the controller, seems a candidate for a Service. Once defined, you can use dependency injection to use it in your controller.
This is the simplest snippet on using a service, but there are other ways of defining them. They are very well explained here
var myApp = angular.module('myApp', []);
//define service
myApp.service('helloWorld', function() {
this.sayHello = function() {
return "Hello World!"
};
});
//inject the service
function MyCtrl($scope, helloWorld) {
alert(helloWorld.sayHello());
}

Community
- 1
- 1

Eugenio Cuevas
- 10,858
- 3
- 29
- 51
-
my question was initially intended for using it on the controller. can you provide an example of globally available function into a Service, like lets say ... `check_email_format()` or `select_menu(item)` ? – leandro713 Sep 19 '13 at 09:24
-
You can apply a method to the `$scope` or `$rootScope` as these are essentially objects, therefore you can assign a method like so: `$scope.foo = function() { console.log('bar'); };`. This will be available in all controllers that are children to the controller's scope you assign this method to. – Ahmed Nuaman Sep 19 '13 at 09:39
1
You can use a service which is injected into any controller that requires the function as already mentioned. However, if you prefer to define the function on the $rootScope
, you can do something like this:
app.run(function ($rootScope) {
$rootScope.add = function (a, b) {
return a + b;
}
});
Then you can simple use this function in a controller as
app.controller('Ctrl', function($scope) {
$scope.mySum = $scope.add(5, 7);
});
Here is a working fiddle Function in $rootScope

kubuntu
- 2,525
- 1
- 22
- 24