1

我有两个命名视图和一个未命名视图,如下所示:

//department.html
<div class="col-md-2">
        <div ui-view="sideBar"></div>
 </div>

 <div class="col-md-10">

        <div ui-view="content"></div>

        <div ui-view></div>

 </div>

还有我的路线:

.state('Support', {
    url: '/support',
    views: {
       '': { templateUrl: 'app/components/department/department.html'  },

       'sideBar@Support': {
                           templateUrl: 'app/shared/sideBar/sideBar.html',
                           controller: 'SideBarController'
                          },

        'content@Support':{
                           templateUrl: 'app/components/department/support/partial-support.html',
                           controller: 'SupportController'
                          },

      }        
  })


.state('Support.view', {
  url: '/view',
  template: '<b> Hi there nested!!</b>'
});

我需要什么 :

  • localhost/support:这是一个父 url,在该 url 中注入了两个命名视图(侧边栏和内容),这对我有用。
  • localhost/support/view:在这个路由器中,我想要一个子视图,它将替换content视图或替换多个视图。

问题是:我无法让嵌套视图工作,我做错了什么?

PS:我已经阅读了 ui-router 文档并查看了其他问题,我找不到任何类似的情况。

4

1 回答 1

1

您的方案在未启用 html5Mode 时有效。有一个工作的plunker

我刚刚使用了这些链接:

<a ui-sref="Support">
<a ui-sref="Support.view">

和状态一样 - 有效。

如果您启用了 html5Mode,您还必须配置您的服务器。但是正如这个更新的 plunker所示,即使启用了 html5Mode,它也可以再次工作

$locationProvider.html5Mode({enabled: true});

检查版本

于 2015-04-14T16:36:03.363 回答