有没有办法动态改变离子滑动盒滑动间隔值?

时间:2016-06-09 23:53:15

标签: javascript angularjs ionic-framework ion-slide-box

我几天来一直在努力,我会感激你的帮助。

我有一个指令,其中有一个广告幻灯片,其中slide-interval与范围中的var绑定,我试图通过更新该变量来改变每个人在slideChanged函数中保持活动状态的时间,下一行代码是重新加载ionicSlideBoxDeletegate,但是,它根本不会加速动画。 这是代码......

.directive('adDirective', function( $ionicSlideBoxDelegate ){
    return {
        restrict: "E",
        replace: true,
        template: ( '<div class="absolute promo-banner-wrp">'
                    + '<ion-slide-box ng-init="disableSwipe()" auto-play="true" on-slide-changed="slideChanged(index)" show-pager="false" does-continue="true" slide-interval="{{speed}}" ng-if="ads.length">'
                        + '<ion-slide ng-click="adTap(ad)" ng-repeat="ad in ads">'
                            + '<img ng-src="{{ad.src}}" />'
                        + '</ion-slide>'
                    + '</ion-slide-box></div>' ),
        controller: function($scope) {
            $scope.slideChanged = function ( index ) {
                $scope.speed = parseInt( $scope.ads[index].category + '000' );
                $ionicSlideBoxDelegate.update();
            };
            $scope.speed = 2000;//In miliseconds
        }
    }
})

1 个答案:

答案 0 :(得分:0)

我认为为了做你所要求的,你必须修改ionic.bundle.js,因为我不确定这是否支持。相反,您可以关闭自动播放并自行管理循环:

var nextSlide = function(){
    $ionicSlideBoxDelegate.$getByHandle(YOUR_DELEGATE_HANDLE).next(ANIMATION_SPEED);
    setTimeout(nextSlide, YOUR_SLIDE_INTERVAL);
}
nextSlide();

您可能还希望捕获用户自己更改幻灯片并重置超时功能。