Ionic设置ion-slide-box不启用(不通过$ionicSlideBoxDelegate)

  猛地一看这个标题,可能觉得多此一举,直接$ionicSlideBoxDelegate. $getByHandle(handle). enableSlide(false)设置不就行了?是的,按理说就是这样啊,可是有个问题:我想初始化一个不能滑动的slide呢?

  有人说window.onload设置好了啊,可是onload时候angular还没有完成渲染啊,$ionicSlideBoxDelegate. $getByHandle(handle)还是空的。

  又有人说,那就angular渲染好了再执行咯。讲真,逻辑上讲确实如此,但是ng并没有ng-load事件,要自己实现,当然,已经可以判断ng加载完成的可以跳过本文章。

  罗嗦一堆,进入正题。

  首先,我们找到了标签ion-slide-box的定义:

   

  记下留用。

  再找到初始化代码:

  

  好长,好吧,跳过不重要的,回归重点:

  我们先找到enableSlider函数代码:

   

  看来是否启用就是通过slideIsDisabled这个属性实现的啊。

  我们继续查找哪边用了这个参数,于是发现原来touchmove这边使用判断啊,也是判断通过就不执行下面的move事件咯。

   

  不执行的控制属性探究完毕,那么开始走流程,看看是怎么进行设置的。

  我们断点进行调试。

  首先断点初始化指令。

   

  走啊走走啊走,终于走到了一个值得注意的地方:这里执行了enableSlider函数!

   

  那么查看下信息咯。

   

  信息看完,发现了使用的值disableScroll是undefined,那么看看传入函数的值是什么,true true true,是true啊,继续。

   

  果然是执行了$ionicSlideBoxDelegate. $getByHandle(handle). enableSlide(true)。那么我们就知道了是disableScroll没有设置值导致了这样的结果。

   

  那我们就设置啊。

  

  继续调试,回到刚刚判断值的地方,果然disableScroll变成了”true”。

   

  我们看看传入enableSlide函数的值,变成false啦!

   

  赶紧进enableSlide瞅了瞅,变了变了。

  

  于是画面上尝试,果然初始化禁掉了(太丑就不上效果了),于是任务完成,ion-slider-box上加上disable-scroll="true"就可以了哦。

 

posted on 2016-12-28 14:42  螃蟹家  阅读(367)  评论(0编辑  收藏  举报

导航