美文网首页
ionic1中ion-slide-box的坑

ionic1中ion-slide-box的坑

作者: 殖民_FE | 来源:发表于2019-10-23 09:29 被阅读0次

近期,在维护老项目时,在做一个轮播图的新功能时,使用on-slide-box时,遇到的坑在此记录一下,谨防其他人也遇到此坑!

问题:

当slider数据列表是动态获取时,如果数据结果只有2条数据时,slider列表会多复制俩个,造成的问题是显示两个,但是其实html渲染了四个slider,并且多复制出来的两个节点,如果添加了点击事件,时会报错的!

通过下面的slideChange方法做个判断可以解决这个bug
<ion-slide-box auto-play="true" does-continue="true" slide-interval="3000" on-slide-changed="slideChanged($index)">
  <ion-slide ng-repeat="pic in pics"><img ng-src="{{pic}}" src="" alt="" width="" height="" /></ion-slide>
</ion-slide-box>

$scope.slideChanged = function(index) {  
        $scope.slideIndex = index;  
        if ( ($ionicSlideBoxDelegate.count() -1 ) == index ) {  
            $timeout(function(){  
                $ionicSlideBoxDelegate.slide(0);  
            },3000);  
        }  
    };

$ionicSlideBoxDelegate是一个依赖,不要忘了引入!
虽然说这个方法能解决自动轮播造成的问题,但是当手动操作滑动时,如果你打印$scope.slideIndex = index;这个index,其实还是有问题!

另外一个方法说是修改源代码,如下:
从源文件(ionic.bundle.js)里找到以下代码   
提示:在setup()方法里找

if (slides.length < 2) options.continuous = false;

用下面代码替换:

if (slides.length<2) {
    options.initialContinuous=options.continuous;
    options.continuous=false;
} else if(options.initialContinuous) {
    options.continuous=options.initialContinuous;
}

本人试了一下,好像并没有生效! 也有可能确实有效,但我试了确实没有生效,可能是本人自己的问题!

ion-slide-box这个是真的很坑,为了解决此问题,最后还是采用 Swiper, 顺利解决此问题!

网上一搜一堆解决方案,但是基本都是一个答案,实际上手试了才知道,坑有多深!

所以建议,如果不想手写一个,直接用Swiper,省的踩着些个坑,节省点开发时间!
还有一点是,维护老项目,真的很酸爽!

image.png

卒! 2019年10月23日 09:30:01

相关文章

  • ionic1中ion-slide-box的坑

    近期,在维护老项目时,在做一个轮播图的新功能时,使用on-slide-box时,遇到的坑在此记录一下,谨防其他人也...

  • ionic轮播图片样式

    转载 如何修改ion-slide-box的相关样式 样式代码 css代码–修改图片大小 .box{width:10...

  • ionic1 + gulp +babel ES6项目

    上篇文章讲了ionic1的环境配置、创建项目和打包app,由于安卓上还是不识别ES6语法,这里讲基于ionic1的...

  • Ionic2 定义全局变量方法

    在ionic2中没有提供像ionic1中的constant那样的方法去管理全局变量。但是在ionic2中可以通过以...

  • 使用Gulp打包ionic1项目

    这篇文章算是对上一篇文章《在微信中使用ionic1之填坑总结》的一个补充,是项目在微信浏览器中使用出现缓存问题的一...

  • ionic1开发之上拉加载使用小结

    在ionic1中,上拉加载的组件为ion-infinite-scroll。 当用户到达页脚或页脚附近时,ionIn...

  • ionic-适配iphoneX

    首先,我的项目是在ionic1环境下创建的,后来升级到ionic3环境,项目还是ionic1的。接下来就是适配iP...

  • Ionic2使用非ionic-native中的cordova插件

    熟悉ionic1和angular1的用户对于使用cordova都有一定的认识,但是在ionic2中官方给出的使用方...

  • ionic常用命令

    ionic -v : 4.1.2新建ionic1指令:ionic start appname tabs --ty...

  • ionic3——ion-scroll无法使用scrollTo的问

    首先,我本来是想在ion-scroll中加个锚点,然后触发事件滚动到指定锚点。在ionic1中可以: 感觉ioni...

网友评论

      本文标题:ionic1中ion-slide-box的坑

      本文链接:https://www.haomeiwen.com/subject/qxshvctx.html