2015-11-17 3 views
3

Я хотел бы привязать обработчик событий к событию postchange моего ons-carousel в моем контроллере AngularJS, однако я продолжаю получать Uncaught TypeError: не могу прочитать свойство «включено» неопределенного.Как получить доступ к переменной ons-carousel в угловом контроллере?

Я пытаюсь получить доступ к моей карусели через атрибут вара из моего контроллера:

$scope.myCarousel.on('postchange', function() { 
    // do something 
}); 

и моя карусель объявляется на моем взгляде:

<ons-carousel var="myCarousel" swipeable overscrollable auto-scroll> 
... 
</ons-carousel> 

Это работает, но я не могу получить доступ переменная myCarousel и не может привязать событие к ней. Что я делаю не так?

ответ

4

Я немного искал документацию о каруселях, и я смог преодолеть эту проблему, добавив атрибут ons-postchange="changeCurrentPictureIndex()" к моей карусели в представлении и каким-то образом внутри моего метода changeCurrentPictureIndex я смог получить доступ к переменной myCarousel.

+0

Что вы подразумеваете под «... и как-то ...»? –

+0

Мне не удалось получить доступ к myCarousel от контроллера представления, однако я мог получить к нему доступ из функции i, сгибаемой к атрибуту ons-carousel. Под «... и как-то ...» я имею в виду, что я не знаю объяснения этому. – Boldizsar

0

Используйте функцию ons.ready перед доступом к переменной карусели. Потому что вы можете получить доступ только к переменной в контроллере после инициализации onsen.

ons.ready(function() { 
    myCarousel.on('postchange', function(event) { 
     //your code 
    }); 
}); 
Смежные вопросы