Можно ли отключить функцию слайдов при запуске, и в то же время я все еще могу настроить свою собственную активную страницу?
Я нашел, что это трюк, в 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
Пожалуйста, помогите мне, спасибо.
<ion-slide-box>
не имеет атрибута active-page
как вы можете видеть в документации.
Вы получаете эту ошибку, потому что вы отключили слайдер:
$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: он отключается.
<body ng-controller="IntroCtrl"></ion-view>