【发布时间】:2013-03-05 19:30:31
【问题描述】:
我有一个带有各种屏幕的应用程序。每个屏幕都分配有一个 URL,例如#、mails、contacts 等。
在我的主 HTML 文件中,我有一个 ng-view 元素,它会根据用户选择的路线进行更新。到目前为止,一切顺利。
现在其中一些屏幕具有子导航。例如,#mails 确实有一个收件箱和一个已发送文件夹。他们用两列展示自己:左侧的子导航,右侧的相应文件夹的邮件。
当您导航到#mails 时,它会将您重定向到#mails/inbox,因此基本上收件箱 是邮件的默认子视图。
我该如何设置?
我目前能想到的唯一方法(我对 AngularJS 很陌生,因此如果这个问题有点幼稚,请原谅我)是有两个视图,一个用于#mails/inbox,另一个用于#mails/sent .
当您选择路线时,会加载这些视图。当您选择 #mails 时,它只会将您重定向到 #mails/inbox。
但这意味着两个视图都必须使用ng-include 进行子导航。不知何故,这让我感觉不对。
我更想要的是嵌套视图:顶部在邮件、联系人等屏幕之间切换,底部在收件箱、已发送等子视图之间切换。
我将如何解决这个问题?
【问题讨论】:
-
据我所知,到目前为止,除了使用 ng-include 之外别无选择。这在未来可能会改变。
-
是的,@Stewie 是对的。
ng-swith现在是正确的方法 -
ui-router 绝对是你想要的。看看 - 我使用它取得了巨大的成功。