不同的州不显示ui-views

时间:2014-01-22 23:38:22

标签: javascript html angularjs angular-ui angular-ui-router

简介

我正在使用AngularJS和AngularUI模块构建一个包含多个视图的管理界面。

我有一个简单的公共页面布局,它有一个ui-view,另一个用于管理页面,有四个ui-views(页眉,侧边栏,主页,页脚)。

问题

我遇到的问题是如果我设置了ui-view main,公共状态将不会显示登录视图,但如果我不设置ui-view main,则公共状态将显示登录视图。标题,侧边栏和页脚适用于任何设置。即使我试图设置绝对名称,似乎有些设置覆盖了另一个设置。有人能解释一下这里发生了什么吗?

  • ui-view =“main”==>登录不显示
  • ui-view =“”==>登录显示

视觉布局:

Page layout


源代码(index.html):

<body>
...
<div ui-view="public">

</div>
<div class="admin">
  <div ui-view="header"></div>
  <div ui-view="sidebar"></div>
  <div class="container" style="margin-top:60px" ui-view="">
                                                     <!-- ^ add main here  -->
  </div>
  <div ui-view="footer"></div>
</div>
...
</body>

代码示例

我设置了一个最小的完整代码示例来概述问题:

Plunker Edit

Plunker Run

1 个答案:

答案 0 :(得分:2)

我已经玩过你的演示了一下,看看ui-router documentation

如果您更改了“公共”状态,如下所示,那么它似乎有用。

原件:

.state('public', {
  url: '/login',
  title: 'Login',
  templateUrl: 'login.html'
})

更新:

.state('public', {
  url: '/login',
  views: {
    'main@': {
      title: 'Login',
      templateUrl: 'login.html'
    }
  }
})

这是一个更新的plunkr: http://plnkr.co/edit/okBWMPpWysS9srKrcxeG?p=preview

您正在尝试做什么,或者您是否尝试将login设置为嵌套视图?