Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Angular 2中动态显示/隐藏菜单栏_Javascript_Html_Angular_Angular2 Routing_Angular2 Services - Fatal编程技术网

Javascript 在Angular 2中动态显示/隐藏菜单栏

Javascript 在Angular 2中动态显示/隐藏菜单栏,javascript,html,angular,angular2-routing,angular2-services,Javascript,Html,Angular,Angular2 Routing,Angular2 Services,我目前正在从事Angular 2项目。我实现了两个组件(1.标题和2.显示页面内容)。 如果我打开服务,我将从登录/注册开始。此时,我想隐藏所有其他菜单项。 如果我已登录,我希望显示所有菜单项 目前,我正在使用*ngIf来显示和隐藏菜单项,这实际上是可行的。我的问题是,如果我启动页面但没有登录,菜单项就不存在了(这很好)。但是,如果我登录,只有包含页面内容的容器正在更改内容,而不是菜单栏 目前,我检查是否以这种方式登录: …菜单项。。。 您可能应该创建一个全局用户服务,跟踪用户状态,组件可以

我目前正在从事Angular 2项目。我实现了两个组件(1.标题和2.显示页面内容)。 如果我打开服务,我将从登录/注册开始。此时,我想隐藏所有其他菜单项。 如果我已登录,我希望显示所有菜单项

目前,我正在使用*ngIf来显示和隐藏菜单项,这实际上是可行的。我的问题是,如果我启动页面但没有登录,菜单项就不存在了(这很好)。但是,如果我登录,只有包含页面内容的容器正在更改内容,而不是菜单栏

目前,我检查是否以这种方式登录:


…菜单项。。。

您可能应该创建一个全局用户服务,跟踪用户状态,组件可以订阅该服务,以便始终实时更新用户登录或未登录的位置

如果您当时不喜欢ngif解决方案,您有几个选项:您可以创建一个全新的组件,并在只有用户登录时才能访问的路径中显示该组件,或者您可以创建一个控制导航菜单项的菜单项数组,并运行ngfor


为了获得更多帮助,您应该回答以下问题:您当前跟踪用户状态(您的用户变量)的位置,以及如何通知组件该变量的更改?仅凭猜测,您可能正在根据构造函数中的本地存储或标头中的oninit函数设置用户变量,然后将其保留。这将导致它一次获得user的值,但以后不会更新它,这就是为什么它会在页面刷新时正确显示

@CodingMole-请提供更多相关代码的详细信息、您尝试的示例和相关屏幕截图。你还需要组织你的问题。
angularjs
是基于javascript的有角度的,即:版本1x<代码>角度是在TypeScript中以角度重写的,即:版本2和版本4。请使用适当的产品名称/术语和标签回答您的问题。谢谢您的回答。我有一个显示菜单项的标题。如果我在主框架(其他组件)中登录,我希望显示更具体的用户相关菜单项。目前,我检查是否以这种方式登录:…菜单项。。。如果我重新加载整个页面,这是可行的-但是我认为应该有更好的方法来实时显示/隐藏菜单项,而无需手动刷新?登录后,使用公共服务重置
用户
变量。如果不显示
用户
如何连接到组件和服务,任何人都无法为您做任何事情,因为我们都会猜测您拥有什么。您能用代码示例创建一个plunker吗?