离子角多重嵌套和抽象状态
Posted
技术标签:
【中文标题】离子角多重嵌套和抽象状态【英文标题】:ionic-angular multiple nested and abstract states 【发布时间】:2015-10-15 01:05:39 【问题描述】:我一直在开发一个需要 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
(此时按返回键无效,连应用程序都不会退出。)
我完全不知道为什么会这样,我得出的唯一结论是,如果我连续尝试进入subapp.screen1
,就会出现问题。如果我一直在subapp.screen1
和screen1
之间切换,一切正常。
我希望无论状态如何切换,后退键都应该响应。
【问题讨论】:
【参考方案1】:基于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
。
【讨论】:
以上是关于离子角多重嵌套和抽象状态的主要内容,如果未能解决你的问题,请参考以下文章