gpt4 book ai didi

ionic - 查看从未调用过的离开事件

转载 作者:行者123 更新时间:2023-12-04 03:16:11 24 4
gpt4 key购买 nike

将现有的 Ionic 项目从 1.13-beta 更新到 1.14-beta 后,我遇到了一些无法解释的行为。从一个 View 状态更改为另一个 View 状态时,旧 View 不会离开页面。在记录 angular ui 路由器事件和 Ionic 导航事件时,我注意到 Ionic 的退出事件没有被触发:

$ionicView.leave
$ionicView.beforeLeave
$ionicView.afterLeave

文档:( http://ionicframework.com/blog/navigating-the-changes/ )

有没有其他人经历过类似的行为?如果是这样,您是否找到了解决此问题的方法?

触发的事件:
$stateChangeStart: App.LoadApp.Input -> App.Main.QrToken
$viewContentLoading: Main
$viewContentLoading: QrToken
$stateChangeSuccess: App.LoadApp.Input -> App.Main.QrToken
$ionicView.beforeEnter
$ionicView.afterEnter
$ionicView.enter

如果我不在 Main 中嵌套它,我可以加载 QrToken View ,所以我相信问题出在那里。任何人都可以看看我的主模板并帮助我找到解决方案。
<div ng-controller="fbMenuController">
<ion-side-menus>

<!-- Left menu -->
<ion-side-menu side="left">
<ion-header-bar class="bar-dark">
<h1 class="title">Menu</h1>
</ion-header-bar>
<ion-content scroll="true">
<div ng-repeat="Group in fb.Model.MenuGroups">
<ion-item class="item-divider">{{Group.Name}}</ion-item>
<!-- href="#/Main/{{Page.Name}}" -->
<a ng-repeat="Page in Group.Items" nav-transition="android" nav-direction="swap" class="item" ng-click="fb.SelectPage(Page.State)">
{{ Page.Name }}
</a>
</div>

</ion-content>

</ion-side-menu>

<!-- Center content -->
<ion-side-menu-content>
<ion-header-bar class="bar-dark" ng-show="fb.Model.ShowHeader">
<div class="buttons">
<button class="button-icon icon ion-navicon" ng-click="fb.ToggleLeftMenu()"></button>
</div>
<h1 class="title">{{ fb.Model.ActivePage.Name }}</h1>
</ion-header-bar>

<ion-content scroll="true">
<ion-nav-view name="Main">

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

</ion-side-menus>
</div>

最佳答案

前几天我遇到了这个问题。我在我的子 Controller 上监听事件。当我将监听器移到父级时,它起作用了。我不太确定为什么,但现在我想我知道为什么了。这是因为 Ionic 缓存 View 的方式。特别是文档中的这一行:

If a view leaves but is cached, then this event will not fire again on a subsequent viewing.



您的 View 很可能在添加监听器之前就已缓存,并且从未触发过 leave 事件。但是因为你的 parent 是......好吧...... parent ,只要你离开它的任何一个 child ,它的离开事件就会被触发。我还没有正式测试过这个,这只是一种预感。要进行测试,请尝试通过在 ion-view 声明中添加 cache-view="false"来告诉 ionic 不缓存 View 。

查看文档 here .

关于 ionic - 查看从未调用过的离开事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28938408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com