我一直在研究一个需要2个具有嵌套状态的抽象状态的应用程序,下面是示例配置
$stateProvider
.state('app', {
url: "/app",
abstract: true,
templateUrl: "templates/menu.html",
controller: "AppController"
})
.state('app.screenList', {
url: "/app/screenList",
views: {
'menuContent': {
templateUrl: "templates/screenList.html",
controller: "ScreenListController"
}
}
})
.state('app.screen1', {
url: "/app/screen1",
views: {
'menuContent': {
templateUrl: "templates/screen1.html",
controller: "Screen1Controller"
}
}
})
.state('app.subapp', {
url: "/app/subapp",
abstract: true,
views: {
'menuContent': {
templateUrl: "templates/subapp.html",
controller: "SubAppController"
}
}
})
.state('app.subapp.screen1', {
url: "/app/subapp/screen1",
views: {
'subappContent': {
templateUrl: "templates/subappscreen1.html",
controller: "SubAppScreen1Controller"
}
}
})
screenList
状态显示要选择的屏幕列表。当发生以下导航时,一切正常
screenList > screen1
按返回键,然后按subapp.screen1
在此阶段退后工作。
有趣的是,当我尝试执行以下导航时,后退停止响应并且没有任何反应。
screenList > screen1
按返回键,然后按subapp.screen1
按返回键,然后再按subapp.screen1
(此阶段按后退键无效。即使应用程序也不退出。)< / p>
我完全不知道为什么会这样,我得出的唯一结论是,如果我连续尝试进入subapp.screen1
,问题就出现了。如果我在subapp.screen1
和screen1
之间切换,一切正常。
我希望无论状态如何切换,后退键都应该响应。
答案 0 :(得分:0)
基于this post,我终于让事情奏效了。
在tabs.html
中,我声明了一个这样的标签:
<ion-tab title="ServOOps Mobile" icon="ion-person-stalker" ui-sref="app.tabs.external-index">
<ion-nav-view name="tab-servicos"></ion-nav-view>
在app.js
中,我这样说:
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html',
controller: 'AppCtrl'
})
.state('app.tabs', {
url: "/tabs",
views: {
'menuContent': {
templateUrl: "templates/tabs.html"
}
}
})
.state('app.tabs.external-index', {
url: '/external-index',
views: {
'menuContent': {
templateUrl: 'templates/external-index.html',
controller: 'ExternalIndexCtrl'
},
'tab-servicos': {
templateUrl: 'templates/external-index.html',
controller: 'ExternalIndexCtrl'
}
}
})
这很好用。现在我在这个页面上有我的侧边菜单和我的标签。
您必须为其他标签重播此内容。
请记住,在此我将外部索引链接到选项卡,现在,页面链接将为#/app/tabs/external-index.html
。