Accessing properties/methods defined under $rootScope from controllers in AngularJS


At one point or another, we often intend to share data between a controller and an application. Whenever we bootstrap our application in AngularJS using ng-app directive, it creates a root scope. Controllers also create their own scope when instantiated that prevent  us to access properties/methods defined in the root scope.  But we can obviate the problem by injecting the root scope into controllers using Dependency Injection.

In the following example, I’ve injected $rootScope into the controller to change the property btnVal defined inside myApp.run. Check out the working demo here.

https://gist.github.com/3890976​

If you are really looking out to share data between controllers then I would recommend to watch this video by simpulton explaining how to share data using a custom service in AngularJS. (Go through the top comment on youtube as well explaining another way to share data using $emit and $broadcast)

If you found this article useful in anyway, feel free to donate me and receive my dilettante painting as a token of appreciation for your donation.
Advertisement