Ich versuche Packery/Mauerwerk an einer Komponente zu arbeiten. Packery erkennt den Container, gibt ihm jedoch eine Höhe von Null, was darauf hindeutet, dass der Inhalt nicht geladen wurde, obwohl ich imagesLoaded verwende. Ich habe versucht, verschiedene Lifecycle-Hooks zu verwenden, aber sie haben alle das gleiche Ergebnis, also ein bisschen verloren, wo ich falsch liege.Get Packery/Maurerarbeit mit angular2 arbeiten
import {BlogService} from './blog.service';
import {Blog} from './blog.model';
import {Component, ElementRef, OnInit, AfterViewInit} from '@angular/core';
import {LinkyPipe} from '../pipes/linky.pipe';
declare var Packery: any;
declare var imagesLoaded: any;
@Component({
moduleId: module.id,
selector: 'blog',
templateUrl: 'blog.component.html',
providers: [BlogService],
pipes: [LinkyPipe]
})
export class BlogComponent implements OnInit, AfterViewInit {
blogs: Blog[];
errorMessage: string;
constructor(private _blogService: BlogService, public element: ElementRef) { }
ngOnInit() {
this.getBlogs();
}
ngAfterViewInit() {
let elem = this.element.nativeElement.querySelector('.social-grid');
let pckry;
imagesLoaded(elem, function(instance) {
console.log('loaded');
pckry = new Packery(elem, {
columnWidth: '.grid-sizer',
gutter: '.gutter-sizer',
percentPosition: true,
itemSelector: '.social-card'
});
});
}
getBlogs() {
this._blogService.getPosts()
.subscribe(
blogs => this.blogs = blogs,
error => this.errorMessage = <any>error);
}
}