Angular ng-show变量超出范围

时间:2014-11-14 12:57:18

标签: javascript angularjs angularjs-scope angularjs-ng-show

我正在尝试以这种方式构建可视化登录/注销功能:

第一次打开页面时,“登录”链接可见且可用,“注销”不可用。当我提交登录消息时,可以看到注销。我用角度ng-show尝试了这个。 spa页面有共同的菜单:

<ul class="nav navbar-nav">
    <li><a href="/public/Register">Register</a></li>
    <li ng-show="loginlogout"><a href="/public/Login">Login</a></li><!--should be true but it is FALSE-->
    <li ng-show="!loginlogout"><a href="/private/Logout">Logout</a></li>
    <li><a href="/private/UserPage">User</a></li>
</ul>

为了设置loginlogout变量,我这样做了:

BetAppModule.controller('HomeController', function ($scope) {

    $scope.loginlogout = true;

});

虽然,当我在Chrome中调试时,loginlogout已正确设置为true,但未完成所需的功能。为什么loginlogout超出了范围,并且它不会保留true,因为它在控制器中设置了。 我也尝试过使用服务。我得到了相同的结果。

如果我使用$rootscope,它会起作用,但我听说不建议这样做。此外,在某些时候,我对$rootscope;

感到困惑

无论如何,我会感激得到一些帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

这应该是一个范围问题,我猜你在你的html(视图)上缺少ng-controller =“HomeController”。