2014-02-17 24 views
0

我正在向我的角度应用程序添加登录屏幕,并且我希望在显示登录屏幕时隐藏主导航栏。一旦登录通过,我需要再次显示主导航。目前主导航是Index.html的一部分,它是第一个服务的文件,也是定义ng-app的文件。据我所知,我可以使用ng-show属性,但我不知道如何指定ng-show的条件,它可以从我的单页面应用程序的不同部分访问和更改。也许,使用$ rootScope或类似的东西来达到这个目的的一个很好的例子会很有帮助。如何设置全局变量以驱动主导航菜单的可见性

+0

您可以在'ng-show'条件的当前范围中使用变量。什么是问题? – akonsu

+0

我想,问题是我在哪里以及如何设置这样的变量。我已经尝试使用$ rootScope.mainNavVisible,然后在视图中访问它:ng-show =“$ root.mainNavVisible”,但我没有得到任何与此。 –

+0

我通常将一个单独的控制器附加到我的导航栏,并在那里设置我的变量。如果我想让导航栏控制器与页面上的其他控制器进行通信,我使用服务并将其注入到所有“感兴趣的”控制器中。 – akonsu

回答

0

每个作用域都通过$ root属性引用$ rootScope。所以,在你的HTML的任何地方,你可以写

ng-show="$root.mainNavVisble" 

其中mainNavVisible是表示主要的资产净值是否应该可见或不上$ rootScope的属性。

+0

我想要使用这种方法:在我的导航栏中,我有

+0

看起来您并未将mainNavVisible指定为true。 – kamilkp