Reputation: 3447
I'm new to angularjs and I have a hard time working with ng-repeat for js plugins like https://github.com/vasyabigi/angular-slick and some other js modules (banner...)
<slick class="slider lazy">
<div ng-repeat="slide in slides"><div class="image"><img data-lazy="http://vasyabigi.github.io/angular-slick/images/lazyfonz2.png"/></div></div>
</slick
<slick class="slider lazy">
<div><div class="image"><img data-lazy="..."/></div></div>
<div><div class="image"><img data-lazy="..."/></div></div>... >> without ng-repeat, it works
</slick
Maybe there's not enough time to wait for all images finish rendering before the slickJs takes action.
The directive does have $timeout (https://github.com/vasyabigi/angular-slick/blob/master/dist/slick.js) though.
Upvotes: 2
Views: 13584
Reputation: 81
You can add init-onload=true and data=(urDataArray):
html:
<slick autoplay="true" autoplaySpeed="500" fade="true" init-onload=true data="slides">
<div ng-repeat="slide in slides"><img data-lazy="..."/></div>
</slick>
Source: https://github.com/vasyabigi/angular-slick/issues/2
Plunker: http://plnkr.co/edit/fakN9jW5h1ssWaiWaHeN?p=preview
Upvotes: 3
Reputation: 3504
Seems to work without issues.
Maybe you can show the code in your src, not the result?
html:
<slick autoplay="true" autoplaySpeed="500" fade="true">
<div ng-repeat="image in images">
<img data-lazy="{{image}}">
</div>
</slick>
controller:
var app = angular.module('demo',['slick']);
app.controller('Ctrl', function($scope) {
$scope.images = [
"http://vasyabigi.github.io/angular-slick/images/lazyfonz1.png",
"http://vasyabigi.github.io/angular-slick/images/lazyfonz2.png",
"http://vasyabigi.github.io/angular-slick/images/lazyfonz3.png",
];
});
Upvotes: 7