ons-carousel-itemをng-repeatで作成した場合にinitial-indexが効かない

投稿者: Anonymous

ons-carouselのons-carousel-itemをng-repeatを使って作成しているのですが、
initial-indexがどうも効いていないようで、1つ目のアイテムが表示されてしまいます。
どうすればinitial-indexが反映されるようになるのでしょうか?

コードは以下のような感じです。
前のページからファイルの情報や絞り込みのフィルタ等を含んだdataを渡しています。

<ons-carousel fullscreen swipeable overscrollable auto-scroll var="carousel" initial-index="{{data.index}}">
    <ons-carousel-item ng-repeat="filedata in data.files | filter:data.filetype | filter:data.searchtext">
        <div class="center">{{filedata.filename}}</div>
        <img src="{{filedata.filepath}}" class="carouselimg" width="100%">
    </ons-carousel-item>
</ons-carousel>

解決

おそらくons-carousel-itemng-repeatを使用しているので、ons-carouselinitial-indexを指定してもその時点ではons-carousel-itemは一つも存在せず、反映されないのではないかと思われます。

コントローラを使用しているのであれば、setActiveCarouselItemIndexメソッドで指定できます。

ons.ready(function() {
    carousel.setActiveCarouselItemIndex($scope.data.index);
});
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *