首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子- [ui.router]不能导航嵌套状态

离子- [ui.router]不能导航嵌套状态
EN

Stack Overflow用户
提问于 2015-06-22 16:09:50
回答 1查看 576关注 0票数 4

我一直在努力想办法,我想我错过了什么,但我不知道是什么。我试过绝对的方法和同样的问题。也许是我试图联系各州的方式?

树视图是这样的:

代码语言:javascript
复制
- app
  - app.category
    - app.category.category-detail

我可以从app导航到app.category,但是我不能再往前走了,下面是我的路线:

代码语言:javascript
复制
        .state('app.category', {
            url: "/category?catId",
            views: {
                'menuContent': {
                    templateUrl: "templates/category.html",
                    controller: "CategoryCtrl",
                    params: ['catId ']

                }

            }
        })
        .state('app.category.category-detail', {
            url: "/category-detail",
            views: {
                'menuContent': {
                    templateUrl: "templates/category-detail.html",
                    controller: "DirectoryDetailCtrl",
                    params: [ 'catId' ]
                }
            }
        })

这是我的category.html

代码语言:javascript
复制
<ion-view>

    <ion-nav-bar class="bar-dark nav-title-slide-ios7 bg-nav" ng-controller="NavCtrl">
        <ion-nav-back-button class="button-clear" ng-click="myGoBack()">
            <i class="ion-chevron-left blanco negrita"></i>
        </ion-nav-back-button>
    </ion-nav-bar>

    <ion-content class="directory-content padding-3 bg-gris">
        <ion-list>
            <ion-item ng-repeat="category in categories" class="item-thumbnail-left tarjeta">
            <a ui-sref="app.category.category-detail">
                {{category.categoryName}}
            </a>
            </ion-item>
        </ion-list>
    </ion-content>
</ion-view>

现在,如果我使用Chrome工具检查这个网站,我可以看到下一个链接生成:

代码语言:javascript
复制
    <a ui-sref="app.category.category-detail" href="#/app/category/category-detail?catId=1" class="">
         Category 1
    </a>

但是视图没有被加载,也没有显示错误。

category-detail.html

代码语言:javascript
复制
<ion-view>
    <ion-nav-bar class="bar-dark nav-title-slide-ios7 bg-nav" ng-controller="NavCtrl">
        <ion-nav-back-button class="button-clear" ng-click="myGoBack()">
            <i class="ion-chevron-left blanco negrita"></i>
        </ion-nav-back-button>
    </ion-nav-bar>
    <ion-content class="category-content padding-3 bg-gris">
        <h1>CATEGORY</h1>
    </ion-content>
</ion-view>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-22 16:13:03

params定义有一个问题,第二个问题是视图/目标命名。

I. params:'catId问题

例如,在这里阅读有关params: {}对象的更多信息:

Angular ui router passing data between states without URL

上文所用的符号:

代码语言:javascript
复制
params: [ 'catId' ]

不再有效了..。现在我们有了更多的设置,例如默认值:

代码语言:javascript
复制
params : { cateId : null }

阅读更多here

II. .视图命名

似乎,您还试图针对来自'app.category'及其子状态'app.category.category-detail'的相同的'app.category.category-detail'.两者都有相对命名:

代码语言:javascript
复制
   .state('app.category', {
        url: "/category?catId",
        views: {
            'menuContent': { // no @ = relative name
             ...

    .state('app.category.category-detail', {
        url: "/category-detail",
        views: {
            'menuContent': {
            ...

如果这个目标ui-view="menuContent"是在'app‘状态下定义的,我们必须使用绝对命名

代码语言:javascript
复制
.state('app.category.category-detail', {
    url: "/category-detail",
    views: {
        'menuContent@app': {
        ...

原因是,没有“@”的名称视图符号是可实现的,可以表示为“viewName@parentState”。所以这些都是一样的

代码语言:javascript
复制
.state('app.category', {
    url: "/category?catId",
    views: {
        // relative
        'menuContent': {
        // absolute - targeting the same ui-view
        'menuContent@app': { // this is absolute name

尝试在这里得到更多(不是关于离子的,但UI-路由器背后的东西是一样的)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30984801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档