我有如下配置:
...
.state('profiles', {
abstract: true
, url : '/profiles'
, resolve: {...}
, views: {
mainModule: {
templateUrl : '/partials/home.html'
, controller : 'HomeCtrl'
}
, leftSidePaneModule: {
templateUrl : '/partials/leftSidePane.html'
, controller : 'LeftSidePaneCtrl'
}
}
})
...
玉器主锉
...
.col-xs-4.col-md-4.chat_block(ui-view='leftSidePaneModule', autoscroll="false")
...
因此,leftSidePaneModule
模块将填充到ui- view='leftSidePaneModule'
占位符中。但是问题是,我在leftSidePaneModule
模板中还有2个命名视图。leftSidePaneModule
模板如下所示:
leftSidePaneModule.html
<div>
<div ui-view="leftWidgetOne"></div>
<div ui-view="leftWidgetTwo"></div>
</div>
如何使模块leftWidgetOne
和leftWidgetOne
在被填充到上述占位?
我试过了,
...
.state('profiles', {
abstract: true
, url : '/profiles'
, resolve: {...}
, views: {
mainModule: {
templateUrl : '/partials/home.html'
, controller : 'HomeCtrl'
}
, leftSidePaneModule: {
templateUrl : '/partials/leftSidePane.html'
, controller : 'LeftSidePaneCtrl'
}
, 'leftWidgetOne@leftSidePaneModule' : {...}
, 'leftWidgetTwo@leftSidePaneModule' : {...}
}
})
...
尝试次数:2
...
.state('profiles', {
abstract: true
, url : '/profiles'
, resolve: {...}
, views: {
mainModule: {
templateUrl : '/partials/home.html'
, controller : 'HomeCtrl'
}
, leftSidePaneModule: {
templateUrl : '/partials/leftSidePane.html'
, controller : 'LeftSidePaneCtrl'
, views: {
'leftWidgetOne' : {...}
, 'leftWidgetTwo' : {...}
}
}
}
})
...
两者都不起作用。
你怎么做呢?
谢谢!
解决方案可在此处找到:视图名称-相对名称与绝对名称。引用:
在幕后,每个视图都被分配一个遵循的方案的绝对名称
viewname@statename
,其中指令中viewname
使用的名称view
,
状态名称 是该州的绝对名称,例如contact.item
…
(注意:在我们的情况下,必须为'profiles'
)。
关键是,我们可以使用的完整 (绝对) 名称view
,它是 当前 状态定义的一部分:
$stateProvider
.state('profiles', {
url: '/profiles',
views: {
mainModule: {
template: '<div>' +
' <h1>Main</h1>' +
' <div ui-view="leftSidePaneModule"></div>' +
'</div>',
},
// here we do target the view just added above, as a 'mainModule'
// as <div ui-view="leftSidePaneModule">
'leftSidePaneModule@profiles': {
template: '<div>' +
' <div ui-view="leftWidgetOne"></div>' +
' <div ui-view="leftWidgetTwo"></div>' +
'</div>',
},
// and here we do target the sub view
// but still part of the state 'profiles' defined in the above
// view defintion 'leftSidePaneModule@profiles'
'leftWidgetOne@profiles': {
template: '<h2>One</2>',
},
'leftWidgetTwo@profiles': {
template: '<h2>Two</2>',
},
}
});
还有一个punker显示了上面的代码
我的配置如下所示: 主玉锉 因此,模块被填充到ui-view='leftSidePaneModule占位符中。但问题是,我在模板中有2个命名的视图。 leftSidePaneModule。html 如何制作模块 我试过了, 尝试: 2 两者都不起作用。 你是怎么做到的? 谢谢
问题内容: 我有这样的结构: 我希望能够在如下所示的主要状态下定义模板,而不必在子状态下进行管理。 我希望命名的ui视图不是其子状态,并由该状态的views对象而不是子状态的templateUrl字段填充。我怎样才能做到这一点? 问题答案: 我们可以在 一种* 状态下使用 更多 视图,请参阅: * 多个命名视图 该定义只需要使用绝对命名即可: 如此处详细说明: 视图名称-相对名称与绝对名称 在幕后
问题内容: 我正在尝试创建文件查看器,并且想嵌套子目录。我正在使用ui-router,我希望每个子目录都有其自己的URL和状态。 说我有以下结构: 我希望我的路线是: 我想递归地执行此操作,而不是为每个子目录创建一个新状态 问题答案: 我建议用 一种状态 和 一种参数 - 来做。因为应该尽快定义所有状态,以支持url路由。所有这些唯一的folderPath可能不同,也可能是动态的-在运行时中,在应
问题内容: 是否可以在有条件的ui路由器中创建嵌套视图?条件已分配给用户角色。 例如,我有两种类型的用户: admin 和 user 。如果用户正在打开设置页面,则ui路由器仅添加分配给他的角色的该视图。 这是我的配置代码的示例 问题答案: 该视图将为每个用户(管理员或匿名)注入。但是我们可以管理哪个视图。最好的办法是使用 。 根据此问答: $ locationChangeSuccess和$sta
问题内容: 我很难找到有关通过数据库动态使用ui路由器的任何文档。当然,所有内容都经过硬编码。 我的杰森: 我的应用程式: 我很难动态配置视图。有任何想法吗? 更新: 我根据RadimKöhler 的回答做了一个Plunker。感谢您的帮助。 我认为ui-router是defacto路由器,它具有动态性,它将使大型应用程序更易于管理。 问题答案: 有一个显示我们如何动态配置视图的插件。的更新版本如
如果我将路由折叠起来,这样看起来就像: 工作很好。我嵌套的原因是因为我将在“dashboard”下有多个子项,并且希望它们都在URL中以为前缀。