-1

我正在测试 angular6 + loopback ......在我的步骤中,我能够创建我的帐户并登录,所以我返回一个包含登录用户信息的用户对象......

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

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

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

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

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

欢迎任何建议。

最好的,

麦克风

4

1 回答 1

0

您应该实现一个structural指令,根据用户是否经过身份验证来添加/删除元素。

关于结构指令的非常好的文章,他们创建了类似的指令,根据用户角色添加/删除内容。

于 2018-09-25T18:59:43.723 回答