1

基本上我正在尝试从我的 root.home 状态转换到 root.topic.section (带有嵌套部分视图的主题视图)。视图加载但我的后退按钮和视图标题没有出现。视图标题与 root.home 中的相同。我不明白,因为当我使用 ui-sref 更改为兄弟状态(没有子状态)时,它确实会更改标题。

编辑:当我从 root.home 导航到同级页面 root.dbtest 时,dbtest 在 DOM 中创建了一个具有正确标题的新导航栏元素,并将主页的导航栏设置为“缓存”。但是当我从 root.home 导航到 root.topic.section 时,不会创建新的 DOM 元素并且 home 仍然处于活动状态。

编辑 2这是我用来从 root.home 链接到子状态的“ui-sref”。

<a ui-sref="root.topic.section({topicId: xxx, inStore: false, topicName: xxx, sectionType: SECTION_TYPE.Summary})">link</a>

.

$stateProvider
    .state('root', {
        url: '/root',
        abstract: true,
        templateUrl: 'templates/menu-static.html',
        controller: 'MenuCtrl'
    })
    .state('root.home', {
        url: '/home',
        views: {
            'menuContent': {
                templateUrl: 'templates/home.html',
                controller: 'HomeCtrl'
            }
        }
    })
    .state('root.topic', {
        url: '/topic/:topicId/{inStore}',
        abstract: true,
        cache: false,
        views: {
            'menuContent': {
                templateUrl: 'templates/topic-view.html',
                controller: 'TopicCtrl'
            }
        },
        params: {topicName: null}
    })

    .state('root.topic.section', {
        url: '/section/:sectionType',
        views: {
            'sectionSpace': {
                templateUrl: 'templates/topic-section-view.html',
                controller: 'TopicSectionCtrl'
            }
        }
    })

这是我的 menu-static.html 中的一个片段

<ion-side-menu-content>
  <ion-nav-bar class="bar-stable">
    <ion-nav-back-button>
    </ion-nav-back-button>
    <ion-nav-buttons side="right">
        <button class="button button-icon button-clear ion-navicon" menu-toggle="right">
        </button>
    </ion-nav-buttons>
  </ion-nav-bar>
  <ion-nav-view name="menuContent">

  </ion-nav-view>
</ion-side-menu-content>

这是来自 home.html 的片段

<ion-view view-title="All Topics">
  <ion-nav-title>All Topics</ion-nav-title>
  <ion-content>
  </ion-content>
</ion-view>

这是来自 topic-view.html 的片段

<ion-view view-title="NOT SHOWING">
  <ion-nav-title>NOT SHOWING</ion-nav-title>
  <ion-content>
    <ion-nav-view name="sectionSpace">
    </ion-nav-view>
  </ion-content>
</ion-view>
4

1 回答 1

2

另外:Url 当前将是 /root/topic/... 这似乎不受欢迎=>您可以拥有 rooturl: '',并且这将允许 url 成为 /topic/ 以上对我来说效果不佳,所以我亲自尝试了它确实对父母有用:

主题-view.html

<ion-view view-title="NOT SHOWING">
    <div class="tabs-striped tabs-top tabs-background-balanced tabs-color-light">
    <div class="tabs">
      <a ng-repeat='section in ["Section1", "Section2", "Section3"]' class="tab-item" ng-click='goTo(section.toLowerCase())'>
        {{section}}
      </a>
    </div>
  </div>
  <ion-nav-view name='sectionSpace'></ion-nav-view>
</ion-view>

它确实奏效了。我不确定这个 {inStore} 是关于什么的,但也许这适用于早期版本的 Ionic/Angular 我想我在这个 codepen 中得到了这个工作:http ://codepen.io/zargold/pen/qZNJNJ?editors=1011

于 2016-03-11T15:40:51.400 回答