В моем Ионных 1.3.1 приложении Я использую ion-slides
компонент для отображения разделов анкеты:slideChangeStart событие не срабатывает, когда я красть
<ion-slides options="vm.options" slider="data.slider">
<ion-slide-page ng-repeat="s in ::vm.sections">
<div class="bar bar-header bar-positive">
<button class="button button-small button-icon icon ion-chevron-left"
ng-click="vm.previous()"
ng-show="::$index !== 0"></button>
<h1 class="title">{{::s.text}}</h1>
<button class="button button-small button-icon icon ion-chevron-right"
ng-click="vm.next()"
ng-show="::($index + 1) < vm.sections.length"></button>
</div>
<ion-content class="has-header">
<div ng-if="s.include" ng-show="s.show">
<!--My content-->
</div>
</ion-content>
</ion-slide-page>
</ion-slides>
В моем контроллере я слушаю для slideChangeStart:
$scope.$on("$ionicSlides.slideChangeStart", function (event, data) {
alert('slideChangeStart');
vm.activeIndex = slider.activeIndex;
vm.propertySurvey.CurrentSectionIndex = vm.activeIndex;
//include is used on an ng-if so elements are removed from the dom
//and the number of watchers is reduced
//also, the slider displays the contents of the
//previous slide unless they are explicitly hidden
vm.sections[slider.previousIndex].include = false;
vm.sections[slider.previousIndex].show = false;
initialiseQuestions(vm.activeIndex);
});
Когда я нажимаю на свои предыдущие и следующие кнопки, которые вызывают slider.slidePrev()
или slider.slideNext()
, срабатывает событие slideChangeStart
- и я вижу предупреждение. Но если я сдвигаю страницу с помощью жестов - заголовок изменяется, как я ожидаю, но событие не срабатывает. Я попытался (в любом случае не мое предпочтительное решение) переключая салфетки прочь в моих вариантов без успеха:
vm.options = {
noSwiping: true,
effect: 'fade'
}
UPDATE Я попытался с помощью slideChangeEnd
, но это событие не стрелять либо. Таким образом, я переместил весь свой код в один метод gotoSlide(index)
, который я вызываю из своих методов, previous
и pagerClick
- так что я не полагаюсь на событие с ионными слайдами. И я добавил ионическую-взмах директиву моей ионно-слайд-страница компоненту, чтобы увидеть, если они будут работать:
<ion-slide-page ng-repeat="s in ::vm.sections"
on-swipe-left="vm.next()"
on-swipe-right="vm.previous()">
Это сделал салфетку работу в Ripple эмулятора (где он не работал вообще, прежде чем), но он по-прежнему не работает ни на одном из моих устройств Android. Опять же, события салфетки, похоже, не срабатывают.
Я использую плагин Пешеходный
Попробуйте добавить свойство onSlideChangeEnd к вашим vm.options. У меня был sucess, определяющий мои события в объекте options – Ladmerc
Пробовал это. Это тоже не стреляет - см. Мое редактирование – Colin