I think it's more common pattern to expose a provider.
Exposing properties is error-prone.
Consider the following:
when application is initialized one sets the names of `localStorage` key/`$rootScope` property and getter method. Then, somewhere in the code it gets changed.
Those settings are app-wide and should not be changed o runtime and therefore should be set in config phase, hence the use of provider.