I don’t know if this is possible or not, but within an initializer I need to be able to call on a userPreferences service to fetch the user’s saved locale before performing the fetch for the localized .json file. Unfortunately, with what I currently have the preference service method is called, but is unable to call a method within the api service contained within it.
Is there a better way of doing this?
// initializer
import Ember from 'ember';
export function initialize(container, application) {
// need to obtain the user prefereces with an existing service
var UserPrefs = container.resolver('service:user-preferences');
var prefs = new UserPrefs();
prefs.fetch().then(function () {
console.log('FETch was done!!');
});
// fetch locale .json file here
}
// userPreferences service
import Ember from 'ember';
export default Ember.Service.extend({
session: Ember.inject.service(),
api: Ember.inject.service(),
_cachedPrefs: null,
fetch: function () {
var self = this;
// ERROR: unable to get an api reference here
// => Assertion Failed: Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.
var api = this.get('api');
var userId = this.get('session.user.id');
var cachedPrefs = this.get('_cachedPrefs');
// ...
}
}