离子导航问题

时间:2015-03-04 04:53:46

标签: angularjs angularjs-routing ionic

我正在尝试开发导航i ion如下

AppCtrl登录或菜单

然后从菜单到产品或订单或返回登录

我的app.html就像这样

<ion-nav-view name="appContent">
</ion-nav-view>

我的menu.html就像这样

<ion-view>
    <ion-side-menus enable-menu-with-back-views="false">
        <ion-side-menu-content>
            <ion-nav-bar class="bar-stable">
                <ion-nav-back-button>
                </ion-nav-back-button>
                <ion-nav-buttons side="left">
                    <button class="button button-icon button-clear ion-navicon" menu-toggle="left"></button>
                </ion-nav-buttons>
            </ion-nav-bar>
            <ion-nav-view name="menuContent"></ion-nav-view>
        </ion-side-menu-content>

        <ion-side-menu side="left">
            <ion-header-bar class="bar-stable">
                <h1 class="title"></h1>
            </ion-header-bar>
            <ion-content>
                <ion-list>
                    <ion-item nav-clear menu-close href="#/app/products">
                        Products
                    </ion-item>
                  <ion-item nav-clear menu-close href="#/app/orders">
                        Orders
                    </ion-item>
                    <ion-item nav-clear menu-close ng-click="logout()">
                        Logout
                    </ion-item>
                </ion-list>
            </ion-content>
        </ion-side-menu>
    </ion-side-menus>
</ion-view>

我的状态配置就像这样

$stateProvider

    .state('app', {
        url: "/app",
        abstract: true,
        templateUrl: "app/views/app.html",
        controller: 'AppCtrl'
    })

    .state('app.login', {
        url: "/login",
        views: {
            'appContent': {
                templateUrl: "app/views/login.html",
                controller: 'LoginCtrl'
            }
        }
    })

    .state('app.menu', {
        url: "/menu",
        views: {
            'appContent': {
                templateUrl: "app/views/menu.html",
                controller: 'MenuCtrl'
            }
        }
    })

    .state('app.products', {
        url: "/products",
        views: {
            'menuContent': {
                templateUrl: "app/views/products.html",
                controller: 'ProductsCtrl'
            }
        }
    })

    .state('app.productdetail', {
        url: "/projects/:productid",
        views: {
            'menuContent': {
                templateUrl: "app/views/productdetail.html",
                controller: 'ProductDetailCtrl'
            }
        }
    });

在AppCtrl中,我导航到登录或菜单。

成功导航到menu.html,

之后,当我选择产品或订单时,它不会进一步导航。

我注意到menuContent导航视图托管在appContent导航视图中。

离子是否支持这种分层导航?

请在此处找到代码表code

1 个答案:

答案 0 :(得分:1)

使用这种分层视图时,我们需要指定需要呈现视图的状态。更改示例中的以下代码行,将正确加载“产品”页面。

 .state('app.products', {
    url: "/products",
    views: {
        'menuContent@app.menu': {
            templateUrl: "templates/products.html",
            controller: 'ProductsCtrl'
        }
    }
});

请注意视图名称menuContent@app.menu中的更改,这将指定在菜单状态下呈现产品视图的路由器。在原始文档https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views

中阅读更多内容