私は、指令を使用してAngularJsでスライダを構築していますが、問題があります。Angularjs:イベントプリロードの背景画像
.controller("HomeController",["$scope","$rootScope", function($scope, $rootScope) {
(function getData() {
//do async call that return data
$scope.images = data;
}, function(err) {
console.log(err);
});
})();
}
]);
そして今、私は私の指示のコード表示することができます::今
.directive('sliderDirective', function($rootScope, $interval) {
return {
restrict: 'E',
templateUrl: 'html/.../slider.html',
replace: true,
scope: {
images: '='
},
link: function(scope, element, attrs) {
scope.currentIndex = 0;
scope.next = function() {
scope.currentIndex < scope.images.length - 1 ? scope.currentIndex++ : scope.currentIndex = 0;
};
scope.prev = function() {
scope.currentIndex > 0 ? scope.currentIndex-- : scope.currentIndex = scope.images.length - 1;
};
scope.$watch('currentIndex', function() {
scope.images.forEach(function(image) {
image.visible = false; // make every image invisible
});
scope.images[scope.currentIndex].visible = true; // make the current image visible
$rootScope.showSlider = true;
});
$interval(function() {
scope.next();
}, 10000);
}
};
});
をこれが
<div class="loading" ng-hide="$root.showSlider">
<div class="logo">
<img class="" ng-src="./img/logo.png">
</div>
</div>
<slider-directive images="images" ng-show="$root.showSlider" ng-if="images"/>
は今、私はスニペットにコントローラを表示私のhome.htmlのコードです私の問題は、スライダにある背景の画像が読み込まれているときに読み込みを取り除くことができ、悪影響を与えずにスライダを表示できるときにわかります。すべての画像や最初の画像がロードされた時を教えてくれるメソッドはありますか?ありがとう
大丈夫ですが、私はリンクの最後の返信を気に入っていますが、 'load'イベントを添付するための指示文でimgの要素を取得するにはどうすればよいですか?ディレクティブ内の画像はun-repeatで表示されます。 – Ragnarr
あなたの場合にディレクティブをどのように使用できるかを示すコードをいくつか用意しました – PJDev