ฉันมีคำสั่งเช่นนี้ .. นำมาจากที่นี่
วิธีแสดง placeholder-image ก่อน ดาวน์โหลดภาพจริงแล้วใช่ไหม?
คำสั่ง
angular.module('starter').directive('hires', function() {
return {
restrict: 'A',
scope: { hires: '@' },
link: function(scope, element, attrs) {
console.log(scope.hires)
if(element.attr("pictype")=="dp"){
element.attr('ng-src', "img/profile-placeholder.png");
element.attr('src', "img/profile-placeholder.png");
}else if(element.attr("pictype")=="general"){
element.attr('ng-src', "img/placeholder.png");
element.attr('src', "img/placeholder.png");
}
element.one('load', function() {
element.attr('ng-src', scope.hires);
element.attr('src', scope.hires);
element.unbind('load');
});
}
};
})
ฉันใช้มันแบบนี้
<div ng-repeat="img in images">
<img ng-src="" pictype="general" hires="{{post.images.images[0]}}">
</div>
หรือแบบนี้
<div ng-repeat="img in images">
<img ng-src="" pictype="general" hires="{{post.images.images[0]}}">
</div>
ทำงานได้ดีเมื่อฉันโหลดอาร์เรย์ด้วยข้อมูล 10 รายการจากเซิร์ฟเวอร์เป็นครั้งแรก .. รูปภาพทั้งหมดไม่ซ้ำกัน แต่เมื่อฉันกดหรือยกเลิกการเลื่อนรูปภาพใหม่ในอาร์เรย์ รูปภาพ รูปภาพสุดท้ายจะปรากฏขึ้น
ฉันจะรีเฟรชคำสั่งได้อย่างไร