2015-05-09 70 views
0

有人可以给ui-view提示吗? 我有一个主ui-view,然后两个嵌套的意见,但由于某些原因,这两个没有得到加载。AngularJS,嵌套UI-视图

$stateProvider 

    .state('index',{ 
    url:'', 
    templateUrl: './app/modules/main.html' 
}) 
    .state('index.feed',{ 
    parent:'index', 
    templateUrl: './app/modules/feed.html' 

}) 
    .state('index.status',{ 
    parent: 'index', 
    templateUrl: './app/modules/status.html' 
    }); 

主要页面加载,但其他两个意见,我不main.html中我 有:

<div class="voucher-display" ui-view="index.feed"></div> 
<div class="feed" ui-view="index.feed"></div> 

我只是得到一个空文件。

回答

0

您在html中传递给ui-view的值不是状态的名称,它应该是视图的名称。

feed.html和status.html中的html是否应该替换或与main.html一起显示?无论哪种情况会改变的解决方案,但假设你总是希望main.html中,并希望在那里展示他们各自的嵌套视图选择了feed.html和status.html,你会做这样的事情:

.state('index', { 
    url: '/', 
    views: { 
    'main': { 
     templateUrl: './app/modules/main.html' 
    } 
    } 
}) 
.state('index', { 
    views: { 
    'main': { 
     templateUrl: './app/modules/main.html', 
    }, 
    'detail': { 
     templateUrl: './app/modules/feed.html' 
    } 
    } 
}) 
.state('index.status', { 
    views: { 
    'main': { 
     templateUrl: './app/modules/main.html', 
    }, 
    'detail': { 
     templateUrl: './app/modules/status.html' 
    } 
    } 
}); 

而在你的html中,你需要两个映射视图的div标签。

<div ui-view="main"></div> 
<div ui-view="detail"></div> 

现在main.html中应始终在第一个div显示,并feed.html或status.html,当他们的状态是活动的,将在第二个div出现。

这里是ui-view directive的文档,这里是关于ui-view的good blog post

+0

它没有工作,因为我有index.html,然后从我所说的main.html中,而那些“状态”,“饲料”我叫他们从内主html的。类似... -index.html - main.html(main ui-view) --- status.html(status uiview) --- feed.html(feed uiview) –

0

一对夫妇尝试后,这个工作加载嵌套:

$stateProvider 
    .state('index', { 
     url: '', 
     views: { 
      'main': { 
       templateUrl: './app/modules/main.html' 
      }, 
      '[email protected]': { 
      templateUrl: './app/modules/status.html' 
      }, 
      '[email protected]':{ 
      templateUrl: './app/modules/feed.html' 
      } 
     } 
}) 

index.html的有:

<main ui-view="main"></main> 

和main.html中里面我有:

<div class="voucher-display" ui-view="feed"></div> 
<aside ui-view='status'></aside> 

但现在我又遇到了另一个问题,如果我想从我的index.html加载另一个ui-view,我该怎么办?因为这不起作用:

.state('clients',{ 
     url:'/clients', 
      templateUrl: './app/modules/clients.html' 
     });