Я пишу приложение emberjs, в котором я написал собственный компонент для загрузки изображений из файла спрайта. Однако я хотел сделать компонент универсальным и иметь возможность загружать любое изображение из файла, указанного в шаблоне. Например, я хочу иметь возможность сделать что-то вроде ниже:
{{svg-icon css-class="" svg-sprite="svgs/svg-sprites.svg" svg-id="special"}}
Мне удалось заставить компонент работать, но затем я хочу пойти дальше и вместо того, чтобы вводить/указывать файл svg каждый раз, когда я хочу настроить файл в настройках приложения в config/environment.js
Итак, я подумал, что напишу инициализатор ember, который будет внедрять объект конфигурации ENV.APP во все мои компоненты. Итак, в моем инициализаторе приложения у меня есть следующий код:
export function initialize(registry, application) {
application.register('config:main', window.MyApp, {instantiate: false});
application.inject('component', 'config', 'config:main');
}
Вышеупомянутое работает отлично, и в моем файле javascript компонента я мог бы просто сделать:
this.get('config').SPRITE_LOCATION;
чтобы получить местоположение файла спрайта.
Но мне интересно, правильный ли это подход? Есть ли лучший способ сделать это? Было бы лучше, если бы я изменил компонент на надстройку CLI? Как мне получить доступ к конфигурации приложения и сделать ее доступной для моего надстройки cli?
Спасибо за помощь.