我几天来一直在努力,我会感激你的帮助。
我有一个指令,其中有一个广告幻灯片,其中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
}
}
})
答案 0 :(得分:0)
我认为为了做你所要求的,你必须修改ionic.bundle.js,因为我不确定这是否支持。相反,您可以关闭自动播放并自行管理循环:
var nextSlide = function(){
$ionicSlideBoxDelegate.$getByHandle(YOUR_DELEGATE_HANDLE).next(ANIMATION_SPEED);
setTimeout(nextSlide, YOUR_SLIDE_INTERVAL);
}
nextSlide();
您可能还希望捕获用户自己更改幻灯片并重置超时功能。