angularjs – 离子历史如何工作,什么时候创建非根堆栈?
我使用
ionic v1.0.0,不明白由$ ionicHistory管理的并行历史的方式工作。
特别是在Android设备上,当使用(以前的硬件)后退按钮时,我的Angular应用程序有时表现得很奇怪,我想了解为什么。 (例如:导航返回打开由$ ionicGoBack()关闭的视图很久以前) 对我来说,似乎一些ui路由器导航创建新的历史堆栈和其他人将历史项目在根历史记录,即使从状态到子状态应附加到状态记录IMO的历史。 问题 >任何人可以解释在哪些情况下ui-sref或$ state.go(…)追加历史项目到新创建的堆栈? 对不起,没有更具体,但应用程序是相当复杂,我不知道如何隔离在一个plunkr中的问题。也许我错过了一个很好的文档…
我会尽力回答这个问题,即使你可能找不到所有的信息,你问。
很多人 – 包括我自己 – 似乎很难理解导航系统和历史如何工作。 我早些时候回答question试图解释为什么事情不能按预期工作。 对于制表符,侧面或常规视图,您可能有不同类型的历史记录。 你可以看到平行的独立历史如何工作在这个codepen。 浏览每个选项卡中的子项,并返回到上一个选项卡,您会注意到导航系统已记住以前的状态。 我准备了另一个plunker在这里,你可以看到导航如何与一些细节显示在页面中。 视图的集合$ ionicHistory.viewHistory()。视图在每次用户访问新页面时更新(集合中的当前视图包含在方括号中)。 如果视图已添加到集合中,则不会(不应该)再次添加。 您可以更改清除历史记录的行为($ ionicHistory.clearHistory())或设置当前历史记录的根目录: $ionicHistory.nextViewOptions({ historyRoot: true }); 在我的plunker的发票页面上有一个绿色按钮(其他根视图)。当按下我设置新的历史根和更改状态: $ionicHistory.nextViewOptions({ historyRoot: true }); $state.go('otherviewroot'); 事情工作正如所料,事实上现在我没有后视图,我的堆栈只包含当前视图。 当你尝试序列时,事情变得麻烦: Home - Contacts - Invoices - Home (button in the header). 现在看起来Ionic已经失去了对序列的控制,并继续向集合添加视图。 按home按钮应该清除后退按钮,因为我们在当前历史的根目录,但不会发生。 使用相同的模式反复增加收集的大小无限期。 我想这不是正确的行为,需要一个修复。 回到你的问题。 Android中的后退按钮工作…意味着它遵循相同的模式。 幸运的是,模态不被视为常规视图,并且不影响集合。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |