Sto usando la giostra Slick in una delle mie applicazioni AngularJS. Per questo ho creato direttiva come segue:Slick Carousel with Angular JS
myApp.directive('slickSlider',function(){
return {
restrict: 'A',
link: function(scope,element,attrs) {
$(element).slick(scope.$eval(attrs.slickSlider));
}
}
});
Ecco il mio codice nel file di visualizzazione:
<div class="clearfix"
slick-slider="{dots: false, arrows: true, draggable:
false, slidesToShow:3, infinite:false}">
<div class="my-slide">
<a><img ng-src="assets/img/img1.png"/></a>
</div>
<div class="my-slide">
<a><img ng-src="assets/img/img1.png"/></a>
</div>
<div class="my-slide">
<a><img ng-src="assets/img/img1.png"/></a>
</div>
<div class="my-slide">
<a><img ng-src="assets/img/img1.png"/></a>
</div>
<div class="my-slide">
<a><img ng-src="assets/img/img1.png"/></a>
</div>
<div class="my-slide">
<a><img ng-src="assets/img/img1.png"/></a>
</div>
</div>
In questo caso si sta lavorando bene e l'inizializzazione correttamente.
Ma quando creo le diapositive dinamicamente utilizzando ngRepeat, non si inizializza e mostra le diapositive una dopo l'altra.
Ecco il mio codice utilizzando ngRepeat
<div class="clearfix"
slick-slider="{dots: false, arrows: true, draggable:
false, slidesToShow:3, infinite:false}">
<div class="my-slide" ng-repeat="slide in slides">
<a><img ng-src="assets/img/{{slide.img}}"/></a>
</div>
</div>
Qualsiasi suggerimento, come posso risolverlo?
grazie amico, si sta lavorando. –
Volevo solo confermare, se non specificiamo il parametro delay nella funzione $ timeout, ci assicuriamo che verrà eseguito dopo che il DOM è stato caricato? –
Sì, l'esecuzione della funzione viene posticipata fino a dopo la fase di rendering. – pixelbits