header 在我的 angular 中隐藏特定页面

header hide for a particular page in my angular

我正在从事 angular 项目,我的需要是仅在登录页面上隐藏 header 块。我试图在登录页面上隐藏 header。但它仍然对我不起作用。谁能帮我把它隐藏在登录状态。

这是我的索引html

<div ng-include src="'views/header.html'"  ng-hide="$state.current.name === 'login'"></div>

    <div class="">
      <div ui-view></div>
    </div>

这是我的app.js

var app = angular.module('Qapp', ["ui.router", "ngRoute"])

app.config(function($stateProvider, $urlRouterProvider) {

    //$urlRouterProvider.when('/dam', '/dam/overview');
    $urlRouterProvider.otherwise('/login');

    $stateProvider
      .state('base', {
        abstract: true,
        url: '',
        templateUrl: 'views/base.html'
      })
        .state('login', {
          url: '/login',
          parent: 'base',
          templateUrl: 'views/login.html',
          controller: 'LogCt'
        })
        .state('dam', {
          url: '/dam',
          parent: 'base',
          templateUrl: 'views/dam.html',
          controller: 'DamCt'
        })


  });

您无权直接访问 HTML 上的 $state 对象。要访问它,您应该将 $state 对象与 $scope/$rootScope 一起放置,您可以在 run 块/controller 中执行此操作并使用 $state.includes 而不是 $state.current.name

标记

<div ng-include src="'views/header.html'"  ng-hide="$state.includes('login')">
</div>

代码

app.run(function($state, $rootScope){
   $rootScope.$state = $state;
})