Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uiview 如何在AngularJS中设置嵌套视图?_Uiview_Angularjs_Nested - Fatal编程技术网

Uiview 如何在AngularJS中设置嵌套视图?

Uiview 如何在AngularJS中设置嵌套视图?,uiview,angularjs,nested,Uiview,Angularjs,Nested,我有一个具有各种屏幕的应用程序。每个屏幕都分配了一个URL,例如#,邮件,联系人,等等 在我的主HTML文件中,我有一个ng视图元素,它根据用户选择的路线进行更新。到目前为止,一切顺利 现在,其中一些屏幕有一个子导航。例如,#邮件确实有一个收件箱和一个已发送文件夹。他们用两列展示自己:左边是子导航,右边是相应文件夹的邮件 当您导航到#邮件,它会将您重定向到#邮件/收件箱,因此收件箱基本上是邮件的默认子视图 我该怎么设置呢 我目前能想到的唯一方法(我对AngularJS很陌生,因此如果这个问题有点

我有一个具有各种屏幕的应用程序。每个屏幕都分配了一个URL,例如
#
邮件
联系人
,等等

在我的主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路由器允许您以最少的工作/请求“隧道”到您想要的地方。