在Ionic中使用$ionicSlideBoxDelegate来创建两个或多个滑动框

Using $ionicSlideBoxDelegate for two or more Slide Box in Ionic

本文关键字:两个 Ionic 创建 ionicSlideBoxDelegate      更新时间:2023-09-26

对于这个HTML和AngularJS初学者的问题很抱歉。我在一页里放了两个幻灯片盒。我希望当用户单击上一个/下一个箭头按钮时,它显示上一个/下一张幻灯片。但问题是,当单击上一个/下一个箭头时,两个框中的所有幻灯片都转到上一个/下一张幻灯片。如何使在点击第一张幻灯片框中的下一个按钮时,只有第一张幻灯片框中的幻灯片会转到下一张幻灯片?我能做到这一点只使用$ionicSlideBoxDelegate还是我需要另一种方式?谢谢…

下面是我的HTML代码:

<ion-slide-box show-pager="false" auto-play="true" does-continue="true" style="background-image:url('img/border.jpg'); background-repeat: no-repeat;">
    <ion-slide>
        <h3 style="padding-left:10px; padding-top:5px;">Pizza Favourite</h3>
        <div class="row">
            <div class="ion-ios-arrow-back col col-5" style="padding-top:50px;" ng-click="previousSlide()"/></div>
            <span class="row">
                <img src="img/pizza1.jpg" class="col col-50" style="width:100px; height:100px; margin-top:-10px">
                <div class="col col-50">
                    <h4 class="row" style="margin-top:-10px">Pizza 1 </h4>
                    <div class="row" style="margin-top:-20px">
                        <img src="img/smile.jpg" style="width:50px; height:50px;"class="col col-40">
                        <h4 class="col col-60"> 5.0</h4>
                    </div>
                </div>
            </span>
            <div class="ion-ios-arrow-forward col-5" style="padding-top:50px;" ng-click="nextSlide()"/></div>
        </div>
    </ion-slide>
    <ion-slide>
        <h3 style="padding-left:10px; padding-top:5px;">Pizza Favourite</h3>
        <div class="row">
            <div class="ion-ios-arrow-back col col-5" style="padding-top:50px;" ng-click="previousSlide()"/></div>
            <span class="row">
                <img src="img/pizza2.jpg" class="col col-50" style="width:100px; height:100px; margin-top:-10px">
                <div class="col col-50">
                    <h4 class="row" style="margin-top:-10px">Pizza 2 </h4>
                    <div class="row" style="margin-top:-20px">
                        <img src="img/smile.jpg" style="width:50px; height:50px;"class="col col-40">
                        <h4 class="col col-60"> 5.0</h4>
                    </div>
                </div>
            </span>
            <div class="ion-ios-arrow-forward col-5" style="padding-top:50px;" ng-click="nextSlide()"/></div>
        </div>
    </ion-slide>
    <ion-slide>
        <h3 style="padding-left:10px; padding-top:5px;">Pizza Favourite</h3>
        <div class="row">
            <div class="ion-ios-arrow-back col col-5" style="padding-top:50px;" ng-click="previousSlide()"/></div>
            <span class="row">
                <img src="img/pizza3.jpg" class="col col-50" style="width:100px; height:100px; margin-top:-10px">
                <div class="col col-50">
                    <h4 class="row" style="margin-top:-10px">Pizza 3</h4>
                    <div class="row" style="margin-top:-20px">
                        <img src="img/smile.jpg" style="width:50px; height:50px;"class="col col-40">
                        <h4 class="col col-60"> 5.0</h4>
                    </div>
                </div>
            </span>
            <div class="ion-ios-arrow-forward col-5" style="padding-top:50px;" ng-click="nextSlide()"/></div>
        </div>
    </ion-slide>
</ion-slide-box>
<ion-slide-box show-pager="false" auto-play="true" does-continue="true" style="background-image:url('img/border.jpg'); background-repeat: no-repeat;">
    <ion-slide>
        <h3 style="padding-left:10px; padding-top:5px;">Burger Favourite</h3>
        <div class="row">
            <div class="ion-ios-arrow-back col col-5" style="padding-top:50px;" ng-click="previousSlide()"/></div>
            <span class="row">
                <img src="img/burger1.jpg" class="col col-50" style="width:100px; height:100px; margin-top:-10px">
                <div class="col col-50">
                    <h4 class="row" style="margin-top:-10px">Burger 1 </h4>
                    <div class="row" style="margin-top:-20px">
                        <img src="img/smile.jpg" style="width:50px; height:50px;"class="col col-40">
                        <h4 class="col col-60"> 5.0</h4>
                    </div>
                </div>
            </span>
            <div class="ion-ios-arrow-forward col-5" style="padding-top:50px;" ng-click="nextSlide()"/></div>
        </div>
    </ion-slide>
    <ion-slide>
        <h3 style="padding-left:10px; padding-top:5px;">Burger Favourite</h3>
        <div class="row">
            <div class="ion-ios-arrow-back col col-5" style="padding-top:50px;" ng-click="previousSlide()"/></div>
            <span class="row">
                <img src="img/burger2.jpg" class="col col-50" style="width:100px; height:100px; margin-top:-10px">
                <div class="col col-50">
                    <h4 class="row" style="margin-top:-10px">Burger 2 </h4>
                    <div class="row" style="margin-top:-20px">
                        <img src="img/smile.jpg" style="width:50px; height:50px;"class="col col-40">
                        <h4 class="col col-60"> 5.0</h4>
                    </div>
                </div>
            </span>
            <div class="ion-ios-arrow-forward col-5" style="padding-top:50px;" ng-click="nextSlide()"/></div>
        </div>
    </ion-slide>
    <ion-slide>
        <h3 style="padding-left:10px; padding-top:5px;">Burger Favourite</h3>
        <div class="row">
            <div class="ion-ios-arrow-back col col-5" style="padding-top:50px;" ng-click="previousSlide()"/></div>
            <span class="row">
                <img src="img/burger3.jpg" class="col col-50" style="width:100px; height:100px; margin-top:-10px">
                <div class="col col-50">
                    <h4 class="row" style="margin-top:-10px">Burger 3</h4>
                    <div class="row" style="margin-top:-20px">
                        <img src="img/smile.jpg" style="width:50px; height:50px;"class="col col-40">
                        <h4 class="col col-60"> 5.0</h4>
                    </div>
                </div>
            </span>
            <div class="ion-ios-arrow-forward col-5" style="padding-top:50px;" ng-click="nextSlide()"/></div>
        </div>
    </ion-slide>
</ion-slide-box>
这是我的控制器代码:
.controller('HomeCtrl', function($scope, $ionicSlideBoxDelegate) {
    $scope.nextSlide = function() {
        $ionicSlideBoxDelegate.next();
    };
    $scope.previousSlide = function() {
        $ionicSlideBoxDelegate.previous();
    }
})

您需要为每个幻灯片框指定"句柄":

<ion-slide-box delegate-handle="burgers">...</ion-slide-box>

然后可以使用句柄控制特定的幻灯片框:

$ionicSlideBoxDelegate.$getByHandle('burgers').next();

$getByHandle的文档