启动时禁用离子滑动

时间:2015-10-13 08:17:48

标签: javascript angularjs ionic-framework

是否可以在启动时禁用幻灯片功能,同时我仍然可以设置自己的活动页面?

我发现这可以解决这个问题,用HTML格式

<ion-slide-box active-page="disableSlide()">
    <ion-slide>Slide 1</ion-slide>
    <ion-slide ng-click="previous()">Slide 2</ion-slide>
    <ion-slide>Slide 3</ion-slide>
</ion-slide-box>

在JavaScript中,

$scope.disableSlide = function(){
    $ionicSlideBoxDelegate.enableSlide(false);
    return 1;
}

$scope.previous = function(){
    $ionicSlideBoxDelegate.previous();
}

但是当我点击上一个时,我收到此错误

Error: [$compile:nonassign] Expression 'disableSlide()' used with directive 'ionSlideBox' is non-assignable!

这里的演示,http://codepen.io/anon/pen/Bodqor

请帮帮我,谢谢。

1 个答案:

答案 0 :(得分:1)

<ion-slide-box>没有active-page属性,您可以在documentation中看到。

由于您已禁用滑块,因此您收到该错误:

$ionicSlideBoxDelegate.enableSlide(false);

但您仍希望使用ng-click更改幻灯片。

如果要在显示视图时禁用滑块,可以使用$ionicSlideBoxDelegate.enableSlide(false);,但最好将其包装在函数中:

function changeSlideStatus()
{
    $scope.slideEnabled = !$scope.slideEnabled;
    $scope.slideStatusTest = $scope.slideEnabled ? "Enabled" : "Disabled";

    $ionicSlideBoxDelegate.enableSlide($scope.slideEnabled); 
}
  

$scope.slideEnabled是一个布尔属性,用于定义状态   滑块。

当导航进入您的视图时,您可以更改状态:

$scope.$on('$ionicView.enter', function(){
    changeSlideStatus();
});

您可以使用此Plunker。在标题中,您只需调用changeSlideStatus();

即可禁用/启用滑块
<ion-nav-buttons side="left">

  <button class="button button-positive"
          ng-click="changeStatus()">
    {{slideStatusTest}}
  </button>

</ion-nav-buttons>
  

PS:它开始被禁用。