Angular6 + Loopback:"isAuth" 不在每个组件中编写相同代码的最佳方法是什么?

Angular6 + Loopback : "isAuth" What the best way to not write the same code in each component ?

我正在测试 angular6 + 环回... 在我的步骤中,我能够创建我的帐户并登录,因此我取回了一个包含已登录用户信息的用户对象...

在我的模板中,我有一些项目只想为登录用户显示。所以我做了一个服务,它会发送一个 Observable,并根据它的值,我在每个组件中显示或不显示我需要的项目...

但是,要做到这一点,我需要在每个组件中调用我的服务,再次创建对我的 Observable 的订阅。

有时我有几个嵌套组件需要检查用户是否已登录。因此,在页面上的一个组件已经可用的情况下,多次重新键入相同的代码似乎是多余的。

所以我的问题是...我真的应该为每个组件进行订阅,还是有办法进行全局服务订阅或从父组件继承订阅?最佳实践是什么?

我通过创建一个 global.ts 文件来进行一些测试,其中包含一个对象,我在登录后将用户登录数据放入其中,然后我只需在每个组件中导入该文件,这样我就可以在需要的地方轻松使用,但我不确定这是否是一个好的做法,而且我遇到了这个方法的一些问题。

欢迎提出任何建议。

最佳,

麦克

您应该实施 structural 指令,该指令 adds/removes 元素基于用户是否经过身份验证。

非常好 article about structural directives 他们创建了类似的指令 adds/removes 基于用户角色的内容。