![](/img/trans.png)
[英]angular2-masonry always adds items to the end rather than in their correct order
[英]Keep the original order of media elements in angular2-masonry plugin
我在一個有角度的項目中使用angular2-masonry插件,在這里我需要顯示媒體而不更改其順序。 angular2-masonry插件沒有可用的選項。 那么有什么辦法可以實現呢?
謝謝。
在使用useImagesLoaded
添加磚塊之前,可以等待所有圖像加載useImagesLoaded
,而尺寸砌體無法維持所需的布置。
添加useImagesLoaded
:
將此包含在.angular-cli.json導入src或index.html中
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/4.1.1/imagesloaded.pkgd.min.js"></script>
將use Image屬性設置為true:
<masonry [useImagesLoaded]="true"></masonry>
另一個選擇是使用setTimeout
調用reloadItems
和layout
:
一種方法是首先引用該組件:
@ViewChild(AngularMasonry) private masonry: AngularMasonry;
然后處理事件:
itemsLoadHandler() {
setTimeout(() => {
this.masonry.reloadItems();
this.masonry.layout();
});
}
您還可以收聽以下事件:
// Outputs
@Output() layoutComplete: EventEmitter<any[]> = new EventEmitter<any[]>();
@Output() removeComplete: EventEmitter<any[]> = new EventEmitter<any[]>();
ngOnInit() {
this.masonry.on('layoutComplete', (items: any) => {
this.layoutComplete.emit(items);
});
this.masonry.on('removeComplete', (items: any) => {
this.removeComplete.emit(items);
});
}
希望能有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.