在AngularJS中,如何设置状态/视图以显示相同的视图'作为' root'如果需要,还可以作为孙子?

时间:2017-04-20 13:08:37

标签: angularjs angular-ui-router

我有一个' home'查看消息'观看和对话'视图。我想要家里的'查看始终显示'消息'视图。这是最简单的部分,我在下面的代码中已经完成了这一点。但是,当用户点击“消息传递”中的链接时,查看我想:

  1. 导航到'对话'视图(下面的示例)。 或
  2. 显示'对话'查看“消息传递”的孩子。
  3. 这是我到目前为止的链接。我花了很多时间试图让它发挥作用,而且还没有能够让它同时做到这两点' 1'和' 2'。这是我当前的状态配置。您可以在此链接中看到完整的示例:

    http://plnkr.co/edit/eVhPAr4zGmsbiNUKdzz3?p=preview

    homeApp.config(function ($stateProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise('/');
        $stateProvider
            .state('home', {
                url: '/',
                views: {
                    '': { templateUrl: 'home.html', controller: "homeController" },
                    'messaging@home': { templateUrl: 'messaging.html', controller: "messagingController" }
                }
            })
            .state('conversations', {
                url: '/conversations',
                views: {
                    '': { templateUrl: 'conversations.html', controller: "conversationsController" }
                }
            })
    });
    

1 个答案:

答案 0 :(得分:1)

然后您可以尝试使用nested states or nested views来执行此操作。

我不确定这是你想要的方式但看看this plunker,它使用嵌套状态完成这项工作:

.state('home.nestedView', {
        url: '/nestedView',
        views: {
          '': { templateUrl: 'conversations.html' }
        }
    })