Services best practises

It depends on subtleties of how you want to be fetching the data, but in general I would say directly accessing a concrete data property in the service is virtually always not the best idea, because of concerns over when it is populated. Here is a different idea that involves exposing a Promise as a service property. If you want to eliminate all caching, your idea of a getter function is the best approach.