ng-hide没有触发,可能与ng-view有关?

时间:2016-05-27 14:04:08

标签: angularjs angular-ng-if ng-hide

我有一个使用角度路由工作的角度网站。它有一个登录名,在该页面上我想隐藏标题。我在其他stackoverflow页面上发现,最好的方法是使用ng-if或ng-hide。然而这些似乎并没有触发。那里有一些荷兰人,所以忽略那个

textBox1.DataBindings.Add(new Binding("Text", _presenter, nameof(_presenter.FirstName)));
textBox2.DataBindings.Add(new Binding("Text", _presenter, nameof(_presenter.LastName)));
textBox3.DataBindings.Add(new Binding("Text", _presenter, nameof(_presenter.Address)));

webpage 请注意控制台中没有打印任何内容(随机文本是其他内容),即使在isLogin()函数中的console.log()中也是如此强大

isLogin()函数位于logincontroller中,该函数在app.config()函数中为路径“/ login”

引用

2 个答案:

答案 0 :(得分:0)

这是一个pen,我建议做一些不同的事情。但基于上面给出的代码,这是一种方法。超时是出于示例目的,这可以在响应成功/失败时从loggin设置。

angular.module('app', [])
  .controller('ExampleController', ExampleController);

ExampleController.$inject = ['$scope', '$timeout'];

function ExampleController($scope, $timeout) {
  $scope.hideNav = false;
  $scope.loggedIn = function() {
    //this could also be set in the view.
    $scope.hideNav = true;
  }

  $scope.logOut = function() {
    $scope.hideNav = false;
  }

  $scope.$watch('hideNav', function(newVal, oldVal) {
    if (newVal == true) {
      $timeout(function() {
        $scope.hideNav = false;
      }, 10000);
    }
  });

}
<div class="container" ng-app="app">
  <nav ng-hide="hideNav" class="navbar navbar-default" ng-controller="ExampleController">
    <div class="container-fluid">
      <div class="navbar-header">
        <a href="/" class="navbar-brand">
          <img alt="Brand" src="../resources/calendar.png">
        </a>
      </div>
      <ul class="nav navbar-nav">
        <li><a href="./taken">Taken</a>
        </li>
        <li><a href="./hulpaanvragers">Hulp aanvragers</a>
        </li>
        <li><a href="./vrijwilligers">Vrijwilligers</a>
        </li>
      </ul>
      <ul class="nav navbar-nav pull-right">
        <li><a href="#" ng-click="loggedIn()">log in</a>
        </li>
        <li><a href="#" ng-click="logOut()">logout</a>
        </li>
      </ul>
    </div>
  </nav>
</div>

答案 1 :(得分:0)

我找到了ng-hide无法正常工作的原因 这是因为导航栏不是包含控制器的ng-view的一部分

我没有意识到导航栏位于ng-view范围之外

我通过添加一个包围整个身体的额外控制器来修复它

编辑*

更改了解决方案没有添加额外的控制器但是将变量添加到rootscope并且rootscope可以访问整个页面