angularjs 仅全屏主页

angularjs fullscreen homepage only

我在一个只有主页有全屏背景的网站上工作。在其他页面上,他们使用普通的 bootstrap 容器。为了将 100% 高度传递到其内部 css,我使用了一个额外的视图。但是这样一来,所有其他页面都被强制下移,因为它们上面的 space 是 100% 高度。我的问题是,如果我不在主页,我该如何删除 'style = height:100%'?

<body>
    <div ui-view="enterHome" style="height:100%;"></div> <!-- additional view -->

    <div ui-view="navbar"></div>
    <div ui-view="body"></div>
    <div ui-view="footer"></div>    
</body>

我的 app.js 如下所示:(即,对于 state = enterHome,我只显示了 enterHome 模板。)

.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("/");
$stateProvider
    .state('enterHome',{
        url:"/",            
        views:{
            "navbar":{
            },
            "carousel":{
            },
            "enterHome":{
                templateUrl:"templates/enterHome.body.html",
                controller: "EnterHomeBodyController"
            },
            "footer":{                  
            }               
        }
    })

测试当前状态为首页状态:

<div ui-view="enterHome" style="{{ ('homepage' | isState) ? 'height:100%;' : '' }}></div>

或者,为了更简洁,用 height: 100% 定义 full-height css class,如果状态是主页,则应用 class:

<div ui-view="enterHome" ng-class="{ 'full-height' : ('homepage' | isState) }></div>

你可以用CSS喜欢

.full-height {
    height:100%;
}

你可以在模板中使用 ng-class

<div ui-view="enterHome" ng-class="full-height: isHomePage"></div>

在您的主页控制器中:

$scope.isHomePage = true;

在其他页面中变量不会被定义,所以它将是false并且不会应用全高class。