Angular6 + Loopback: "isAuth" Какой лучший способ не писать один и тот же код в каждом компоненте? - PullRequest
0 голосов
/ 25 сентября 2018

Я тестирую петлю angular6 + ... На моем этапе я могу создать свою учетную запись и войти в систему, поэтому я возвращаю объект пользователя с информацией о зарегистрированном пользователе ...

В моих шаблонах есть элементы, которые я хочу показывать только зарегистрированным пользователям.Поэтому я создаю сервис, который будет отправлять Observable, и в соответствии с его значением я показываю или нет элемент в каждом компоненте, который мне нужен ...

Но для этого мне нужно в каждом компоненте вызватьмой сервис, создайте заново подписку на мой Observable ..

И иногда у меня есть несколько вложенных компонентов, для которых мне нужно проверить, вошел ли пользователь в систему или нет.Поэтому представляется излишним повторять один и тот же код несколько раз, пока он уже доступен для одного компонента на странице.

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

Я провожу некоторый тест, создавая файл global.ts с объектом, в который я помещаю свои данные для входа пользователя после входа в систему, затем я просто импортирую этот файл в каждый компонент, чтобы я мог легко использовать его там, где мне нужно,но я не уверен, что это хорошая практика, и я сталкиваюсь с некоторыми проблемами с этим методом.

Любые предложения приветствуются.

Бест,

Майк

1 Ответ

0 голосов
/ 25 сентября 2018

Вы должны реализовать директиву structural, которая добавляет / удаляет элемент в зависимости от того, аутентифицирован ли пользователь.

Действительно хорошая статья о структурных директивах , где они создают аналогичную директиву, которая добавляет/ удаляет контент в зависимости от роли пользователя.

...