Uiview 如何在AngularJS中设置嵌套视图?
我有一个具有各种屏幕的应用程序。每个屏幕都分配了一个URL,例如Uiview 如何在AngularJS中设置嵌套视图?,uiview,angularjs,nested,Uiview,Angularjs,Nested,我有一个具有各种屏幕的应用程序。每个屏幕都分配了一个URL,例如#,邮件,联系人,等等 在我的主HTML文件中,我有一个ng视图元素,它根据用户选择的路线进行更新。到目前为止,一切顺利 现在,其中一些屏幕有一个子导航。例如,#邮件确实有一个收件箱和一个已发送文件夹。他们用两列展示自己:左边是子导航,右边是相应文件夹的邮件 当您导航到#邮件,它会将您重定向到#邮件/收件箱,因此收件箱基本上是邮件的默认子视图 我该怎么设置呢 我目前能想到的唯一方法(我对AngularJS很陌生,因此如果这个问题有点
#
,邮件
,联系人
,等等
在我的主HTML文件中,我有一个ng视图
元素,它根据用户选择的路线进行更新。到目前为止,一切顺利
现在,其中一些屏幕有一个子导航。例如,#邮件
确实有一个收件箱和一个已发送文件夹。他们用两列展示自己:左边是子导航,右边是相应文件夹的邮件
当您导航到#邮件
,它会将您重定向到#邮件/收件箱
,因此收件箱基本上是邮件的默认子视图
我该怎么设置呢
我目前能想到的唯一方法(我对AngularJS很陌生,因此如果这个问题有点幼稚,请原谅我)是有两个视图,一个用于#邮件/收件箱
,另一个用于#邮件/发送
选择管线时,将加载这些视图。当您选择#邮件
时,它只会将您重定向到#邮件/收件箱
但这意味着两个视图都必须为子导航使用ng include
。不知怎么的,我觉得这是不对的
我更喜欢的是嵌套视图:顶部视图在邮件、联系人等屏幕之间切换,底部视图在收件箱、发送等子视图之间切换
如何解决此问题?解决了我的问题:-)另一个要签出的库: 您可以使用它代替内置的
ng视图
和$route
示例路由配置如下所示:
$routeSegmentProvider.
when('/section1', 's1.home').
when('/section1/prefs', 's1.prefs').
when('/section1/:id', 's1.itemInfo.overview').
when('/section1/:id/edit', 's1.itemInfo.edit').
when('/section2', 's2').
segment('s1', {
templateUrl: 'templates/section1.html',
controller: MainCtrl}).
within().
segment('home', {
templateUrl: 'templates/section1/home.html'}).
segment('itemInfo', {
templateUrl: 'templates/section1/item.html',
controller: Section1ItemCtrl,
dependencies: ['id']}).
within().
segment('overview', {
templateUrl: 'templates/section1/item/overview.html'}).
segment('edit', {
templateUrl: 'templates/section1/item/edit.html'}).
up().
segment('prefs', {
templateUrl: 'templates/section1/prefs.html'}).
up().
segment('s2', {
templateUrl: 'templates/section2.html',
controller: MainCtrl});
据我所知,到目前为止,除了使用ng include外,没有其他选择。这在将来可能会改变。看看并看看。是的,@Stewie是对的
ng swith
是nowui的正确方法,路由器绝对能够满足您的需求。看看吧,我已经用得很成功了,我同意。以前,我只能处理基本上单一的路由,但ui路由器允许您以最少的工作/请求“隧道”到您想要的地方。