AngularJS ng-view布局管理

时间:2015-08-22 04:44:24

标签: angularjs

您好我正在使用angularjs开展项目。 我的旋转逻辑是

.state( "authenticate", {
        url: '/',
        templateUrl : "views/login.html", 
        controller  : "LoginCtrl",
        data : {
            requireLogin : false
        }
    })
    .state( "beats", {
        url: '/beats',
        templateUrl : "views/beats.html", 
        controller  : "BeatsCtrl",
        data : {
            requireLogin : true
        }
    })

.state( "outlets", {
        url: '/outlets',
        templateUrl : "views/beats.html", 
        controller  : "BeatsCtrl",
        data : {
            requireLogin : true
        }
    })

ng-view中的index.html首先包含login.html(网址' /')。在每个州登录后,我想使用navbar在每个模板中加入ng-include

目前我在每一页写这行

<div ng-include=" 'templates/navbar.html' "></div>

但我想只包含一次,每个视图都应该在它下面呈现。但问题是这个导航栏模板本身在ng-view中呈现。 据我所知,我们不能在一个应用程序中使用多个ng-view。

任何人都可以告诉我这样做的最佳方法是什么。

1 个答案:

答案 0 :(得分:3)

你可能有这个导航栏包含在index.html本身,但是使用ng-if或ng-show隐藏它直到用户登录。一旦用户登录,你可以有一个评估为的标志为true,此导航栏可以显示在每个后续页面上。

index.html中的

<div id="navbar" ng-if="isUserLoggedIn">
    // nav bar code
</div>

这个'isUserLoggedIn'将由范围内的LoginCtrl设置为true。