3

我正在处理角度项目,而我的需求是仅在登录页面上隐藏标题块。我试图在登录页面上隐藏标题。但它仍然不适合我。你可以帮助我在登录状态下隐藏它吗?标题隐藏在我的角度的特定页面

这里我的索引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' 
     }) 


    }); 
+0

提示:我会使用“ng-if”而不是“ng-hide”,为了更好的可读性,在你的mainCtrl中创建一个像“ShowHeader()”的函数,并且你不能直接访问View中的$ state,你需要一个控制器, $ state Provider,在那里你可以访问$ state。 – squadwuschel

回答

4

您没有获得直接$state对象的HTML。对于访问它,你应该把$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; 
}) 
+1

它的作品。感谢更正:) –

+0

@BhavanKumarNatarajan很高兴帮助你,谢谢;) –