ng-if如果找不到或不在ng-view之外工作

时间:2015-02-27 13:05:48

标签: javascript jquery angularjs

样本:请查看链接http://plnkr.co/edit/Q3Z669FeRHqMORcQ9v6K?p=preview

我在Visual Studio 2013工作。

我试图隐藏或基于身份验证,我想显示菜单。但是ng-if如果不在ng-view之外工作。

实际上ng-if没有智能感知器。虽然我粘贴了代码,但我没有得到。 但是ng-hide正在运作

我正在获取ng-hide。但我不喜欢使用ng-hide,因为这只会隐藏元素。因此,使用inspect元素,我们可以启用菜单。

为什么我没有得到ng-if?我做错了吗

 <div id="page-wrapper" ng-controller="indexController">
        <div id="page-header" class="bg-gradient-9" ng-if="!authentication.isAuth">
            <div id="mobile-navigation">
                <button id="nav-toggle" class="collapsed" data-toggle="collapse" data-target="#page-sidebar" aria-expanded="false" aria-controls="navbar"><span></span></button>
                <a href="javascript:void(0);" class="logo-content-small" title=" {{ '' | translate }}"></a>
            </div>
            <!--Logo for all the screen-->
            <div id="mobile-navigation">
                <a href="#/" class="logo-content-small" title=""></a>
            </div>
            <div id="header-logo" class="logo-bg mobile-hidden">
                <a href="#/" class="logo-content-big" title="">

                </a>
                <a href="#/" class="logo-content-small" title="NoteReport">
                    NoteReport
                </a>

            </div>

        </div>

        <div id="page-content-wrapper ">
            <!--Partial loading of the content-->
            <div class="angular-ngview-content" ng-view>

            </div>
        </div>
    </div>

2 个答案:

答案 0 :(得分:0)

如果由ng-if创建的子范围,这是古老的问题,请尝试:

ng-if="!$parent.authentication.isAuth"

编辑

在角度1.1.5之后提供了ng-if指令,您使用的是1.0.5。 Working plunk

答案 1 :(得分:0)

这是因为ng-if创建子范围以及原型继承如何与primitives.just检查一次

 ng-if="authentication.isAuth"

将angularjs版本更改为1.3.8 ......它将起作用