Предупреждение: ComponentResolver теперь заменен на ComponentFactoryResolver в финальной версии Angular 2.

Я часто использую $compile в Angular 1 для динамической загрузки шаблонов директив. Это избавляет от лишней логики, необходимой в контроллерах и шаблонах; это держит вещи в порядке. Возможность загрузки шаблонов в зависимости от параметра — это мощный подход к директивам, которые можно использовать для нескольких или разных целей в вашем приложении.

В Angular 2 $compile не существует. Пришлось покопаться (документации мало), чтобы найти подходящее решение, которым оказался сервис ComponentResolver.

Этот сервис можно использовать для преобразования экземпляра компонента в тег html в шаблоне компонента. Недостаток этого подхода по сравнению с $compile заключается в том, что вы имеете дело с реальным компонентом, без общего контроллера и нескольких файлов шаблонов. Это означает, что вам нужно сделать дополнительный шаг по передаче любых значений, параметров или общей логики дочернему компоненту.