【问题标题】:How to set a Nested view inside a multiple views如何在多个视图中设置嵌套视图
【发布时间】:2015-04-14 16:03:46
【问题描述】:

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

//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 中注入了两个命名视图(sideBar 和 content),这对我有用。
  • localhost/support/view :在这个路由器中,我想要一个子视图来替换 content 视图或替换两个多个视图。

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

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

【问题讨论】:

标签: angularjs angular-ui-router nested-views


【解决方案1】:

您的方案在未启用 html5Mode 时有效。有a working plunker

我刚刚使用了这些链接:

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

状态原样 - 有效。

如果您启用了 html5Mode,您还必须配置您的服务器。但正如this updated plunker 所示,即使启用了 html5Mode,它也会再次运行

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

检查版本

【讨论】:

  • 感谢您指出html5Mode,但问题仍未解决我想完全替换content@Support的内容,换句话说,当我点击 Support.view 链接我不想看到 content@Support 的内容...
  • 我在plnkr.co/edit/0nls7qhL40B792uRZ6sp?p=preview 处创建了一个调整后的插件,它确实将 Support.view... 上的 content@Support 的内容更改为空的内容。我使用了原生 UI-Router 解决方案 - 多 views :{} 希望这会有所帮助
猜你喜欢
  • 2013-03-05
  • 2015-09-11
  • 2013-02-14
  • 2019-07-19
  • 2012-03-28
  • 2019-05-08
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
相关资源
最近更新 更多