首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >离子导航-后退按钮和state.go -向后动作雄心勃勃地工作

离子导航-后退按钮和state.go -向后动作雄心勃勃地工作
EN

Stack Overflow用户
提问于 2015-05-03 07:33:25
回答 1查看 1.4K关注 0票数 2

我和AngularJS (stateProvider)一起使用Ionic

我在抽象状态的默认模板中添加了以下代码

代码语言:javascript
运行
复制
<ion-nav-bar class="bar-stable">
 <ion-nav-back-button>
 </ion-nav-back-button>
</ion-nav-bar>

加载默认控制器(显示StateA)时,通过调用

代码语言:javascript
运行
复制
$state.go(...);

这将导致加载另一个模板并将其显示在子视图中。此外,它还激活了back按钮。

  1. 单击导航栏中的后退按钮后,它将返回到默认页面(StateA)。
  2. 导航栏中的后退按钮变得不可见,但是如果我在手机上按后退按钮,它会把我带回到过渡状态(StateB)。

这有点奇怪,因为为什么StateB再次显示而不是关闭应用程序。

EN

回答 1

Stack Overflow用户

发布于 2015-05-03 10:36:36

当用户浏览整个应用程序时,Ionic能够跟踪他们的导航历史。通过了解它们的历史,视图之间的转换可以使用平台的转换风格正确地进入和退出。 来自离子Doc

离子型将自动跟踪您的状态历史为您使用stateProvider,所以它是一个堆栈的历史。

从状态A开始,堆栈只有一个页面: A。

代码语言:javascript
运行
复制
| A |

在进入状态B之后,它将被推入历史堆栈:

代码语言:javascript
运行
复制
| B |
| A |

Ionic提供的导航视图将显示导航条中的后退按钮,因为它认为您正在进行状态转换,并帮助您为您保留历史记录(如iOS中的导航控制器)。

然后,如果您单击导航栏中的后退按钮,历史堆栈将弹出B,并再次为您显示A。

代码语言:javascript
运行
复制
| A |

“后退”按钮将为您删除,因为您将回到初始状态(如根页)。

为什么要在手机上点击“后退”按钮,让我回到过渡状态?

您正在操纵全局窗口对象的窗口历史(编译后的Ionic app仍然被认为是一个web应用程序,即使在移动平台上也是如此)。这很像你在浏览器中点击后退按钮时所做的事情。

代码语言:javascript
运行
复制
/A <- /B(window history) <- /A (current page)
  1. 如果您想使用ionicHistory做一些事情,请检查这一讨论
  2. 如果要对设备按钮行为进行操作,请检查这个相关的主题

我也在这里学习离子,所以我不确定我是否所有的概念正确或不正确。希望这能有所帮助!

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

https://stackoverflow.com/questions/30011362

复制
相关文章

相似问题

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