【ionic框架bug】slidebox在使用model或popover后width变为0的解决方案

当在 Ionic 的 slidebox 中结合使用 model 或 popover 后,slidebox 的宽度可能变为0,导致内容无法显示。解决方案包括使用 ng-if 重新渲染,调用 $ionicSlideBoxDelegate.update() 更新宽度,修改 ionic 源码,或引入修复后的 js 片段覆盖原有代码。
摘要由CSDN通过智能技术生成

【ionic框架bug】slidebox在使用model或popover后width变为0的解决方案

问题描述

如果在silideBox上使用缓存,那么在进入另一个state之后,打开一个Popover或者一个Modal,再返回原来的页面,则slideBox的width变为0,即看不见silideBox的内容了。

解决方案

一.使用ng-if

即不使用缓存,但是这样的弊端就是没有缓存-.-,其实原理就是每次重新渲染slidebox。

二.使用$ionicSlideBoxDelegate.update()

在每次进入页面的时候执行此方法,会让slideBox重新计算宽度和高度。判断进入页面的方法可以是监听$ionicView.enter或者$stateChangeSuccess,建议后者,其中封装的有stateFrom、stateTo等方法方便判断页面的跳转,并且反应较前者快很多。

三.修改ionic源码(建议)

为什么说这个是ionic的框架bug,就是因为它的源码写的有缺陷,导致一些莫名其妙的问题。所以打开ionic.bundle.js查看它的源码(只展示一开始的一部分):

ionic.views.Slider = ionic.views.View.inherit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值