Взаимодействие директивы и сервиса

Всем привет! Пытаюсь реализовать интернационализацию без использования сторонних модулей и столкнулся с такой проблемой. Есть сервис переводов:

export class TranslationService {
    private translations: any;

    // загрузить переводы для языка
    loadTranslations(lang: string) { ... }

    // достать перевод по ключу
    get(key: string) {
        return this.translations[key];
    }

}

Есть директива, которая будет менять текст в теге на перевод, например:

export class I18nDirective implements OnInit {
    @Input() i18n: string;

    constructor(private el: ElementRef,
                private translationService: TranslationService) {}

    ngOnInit() {
        this.el.nativeElement.textContent = this.translationService.get(this.i18n);
    }

}

Пример её использования: <div i18n="global.welcome">Этот текст будет заменен</div>

Проблема: при смене языка подгружаются новые переводы, но директива об этом ничего не знает и, соответственно, переводы не меняются. Как сделать так, чтобы узнала?


Ответы (0 шт):