Javascript 从模板启动多个命名视图
我正在使用Javascript 从模板启动多个命名视图,javascript,angularjs,Javascript,Angularjs,我正在使用ui路由器,并创建了一个包含多个子状态的父状态,如下所示: .state('portfolio.patent', { url: '/:patentId', controller: 'patentItemCtrl', controllerAs: '$ctrl', templateUrl: 'app/templates/patent/patent.patent-item.tpl.htm', }) .state('portfolio.patent.paten
ui路由器
,并创建了一个包含多个子状态的父状态,如下所示:
.state('portfolio.patent', {
url: '/:patentId',
controller: 'patentItemCtrl',
controllerAs: '$ctrl',
templateUrl: 'app/templates/patent/patent.patent-item.tpl.htm',
})
.state('portfolio.patent.patent-info', {
templateUrl: 'app/templates/patent/patent.patent-info.tpl.htm',
url: '/',
controller: 'patentInfoCtrl',
controllerAs: '$ctrl'
})
.state('portfolio.patent.notifications', {
templateUrl: 'app/templates/notifications/notifications.tpl.htm',
url: '/',
controller: 'notificationsCtrl',
controllerAs: '$ctrl'
})
我希望这些子状态加载到单独的选项卡中,在左右tabset
之间拆分,如下所示:
<div class="col-xl-6 ">
<uib-tabset active="activeLeft">
<uib-tab index="0" heading="Details" data-ui-sref=".patent-info"></uib-tab>
</uib-tabset>
<div ui-view></div>
</div>
<div class="col-xl-6">
<uib-tabset active="activeRight">
<uib-tab index="1" heading="Notifications" data-ui-sref=".notifications"></uib-tab>
</uib-tabset>
<div ui-view></div>
</div>
它的工作原理是视图加载内容,但当然没有命名视图,所选选项卡在左侧和右侧ui视图中加载内容,而不是在左侧选项卡集中加载patent info
,在右侧选项卡集中加载通知
问题
如果我将ui视图调整为,您就没有为子视图正确构建您的状态。您不需要有多个状态,而是需要一个父状态,它的子状态具有views
属性。下面是一个超级精心设计的简单示例,仅用于说明子视图的使用。您可以为每个子视图定义一个控制器(事实上,我很确定它与状态
具有所有相同的属性,除了没有url
),就像您为常规状态定义控制器一样。导航发生在父级,因此您永远不会实际导航到子视图,它们与父视图一起加载
angular.module('app',['ui.router']))
.config(函数($stateProvider,$urlRouterProvider){
$urlRouterProvider。否则('/');
$stateProvider
.州('父'{
url:“/”,
观点:{
“leftTab”:{
模板:“这是左侧选项卡”
},
“右选项卡”:{
模板:“这是正确的选项卡”
}
}
});
});代码>
感谢您的回复。我理解这一部分,但是在leftTab
和rightab
视图中,我需要专利信息
和通知
的进一步视图。因此本质上会有父视图
>,然后是子视图左选项卡
+右选项卡
(兄弟)>然后是孙子视图专利信息
(对于左选项卡)和通知
(对于右选项卡)嗯,这与您在原始问题中指出的结构不同。在我给出的例子中,parent
将是portfolio.patent
,leftTab
将是portfolio.patent.patent.patent.info
和rightab
将是portfolio.patent.notifications
。因此,您有一个父公文包
状态,并且模板包含一个ui视图
,您的公文包将加载到该视图中。专利
状态包含左右选项卡集的视图。