Компонент фасада машинописного текста просто должен быть динамически заменен другим компонентом

#typescript

Вопрос:

У меня есть проблема с тем, как реализовать меню с различными опциями, основанными на правах пользователя (которые передаются через API)

т. е. пользователь «Базовый пользователь» может видеть компонент «мой профиль», компонент «новости», компонент «поиск», а пользователь «Администратор» может видеть, что может «Базовый пользователь», но также может видеть компонент «мои сотрудники», который принимает меня все остальные «Базовые пользователи»

пример ответа

 {
    "name": "admin",
    "avatar": "someRandomAvatar",
    "navigationItems" : [
        "navigationItem": {
            "id":0,
            "name":"my profile",
            "url":"http://localhost:8090/@self"
        },
        "navigationItem": {
            "id":1,
            "name":"Lastest News",
            "url":"http://localhost:8090/news"
        },
        "navigationItem": {
            "id":2,
            "name":"search",
            "url":"http://localhost:8090/search/"
        },
        "navigationItem": {
            "id":3,
            "name":"my employees",
            "url":"http://localhost:8090/employee/all"
        }
    ] 
}
 

у администратора будет ответ, у Id :3 обычного пользователя его не будет
Теперь, основываясь на этом ответе, мне нужно будет отобразить список меню на интерфейсе
, каждый объект из массива будет отображаться одинаково (*ngFor позволяет navigationItem в navigationItems).
щелчок по пункту меню введет мне другой компонент в DOM
Я думаю выбрать нужный компонент на основе идентификатора, но открыт для предложений
, и каждый компонент будет иметь другой дизайн

может ли кто-нибудь помочь мне с идеей или некоторой информацией о том, как лучше всего это сделать? достаточно ли хорош компонент функций? Спасибо!