AngularJS ng-view 布局管理

标签 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
        }
    })

我在 index.html 中有 ng-view,其中首先包含 login.html(url '/')。在每个状态登录后,我想使用 ng-include 在每个模板中包含一个 navbar

目前我正在每个页面上写这行

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

但我只想包含一次,并且每个 View 都应该在其下方渲染。但问题是这个导航栏模板本身在 ng-view 中渲染。 据我所知,我们不能在一个应用程序中拥有多个 ng-view。

任何人都可以告诉我执行此操作的最佳方法是什么。

最佳答案

您可能会将此导航栏包含在 index.html 本身中,但使用 ng-if 或 ng-show 隐藏它,直到用户登录。用户登录后,您可能会有一个标记,其计算结果为true 并且此导航栏可以出现在每个后续页面上。

在index.html

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

并且此“isUserLoggedIn”将由范围上的 LoginCtrl 设置为 true。

关于AngularJS ng-view 布局管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32152402/

相关文章:

angularjs - Angular 在离开网站时删除 cookie

angularjs - 在 AngularJS 中使用 $timeout 代替 window.setTimeout 有什么优势?

javascript - 服务器数据请求后无法更新旋钮的颜色

javascript - AngularJS - 即使数组中只有一项,循环也会错误地递增

javascript - Angular limitTo 过滤器的第二个参数 "begin"似乎在 Angular 1.3 中不起作用

javascript - 路由更改后,运行一次js脚本

javascript - 无法在下拉控件中设置所选选项

javascript - 使用 ui-select-match 选择多个条目

AngularJS 标记指令,如 StackOverflow 的标记系统

javascript - Angular UI-Grid expandableRow selectionChange update parent