我想在Angular 2應用程序中使用Masonry Grid。Angular 2和砌體網格第三方庫
我安裝這一個:http://masonry.desandro.com/
有:npm install masonry-layout --save
,我包括通過angular-cli.json
"scripts": [
"../node_modules/masonry-layout/dist/masonry.pkgd.min.js"
],
和工程,以及。
在應用程序,如果我在網絡瀏覽器中打開控制檯,然後輸入這段代碼:
var elem = document.querySelector('#masonry-grid');
var msnry = new Masonry(elem, {
// options
itemSelector: '.grid-item',
columnWidth: 200
});
一切工作爲好。
現在我想實現它自動工作。那麼我做了什麼?
在組件我使用
ViewChild
(@ViewChild('masonryGrid') masonryGrid: ElementRef;
)
,以獲得股利和替換此行純JavaScript線
var elem = document.querySelector('#masonry-grid');
現在我掙扎爲砌體創造typings.d.ts,這部分對我來說還不完全清楚。
我試着在組件的頂部用這種方式聲明變量。
declare var Masonry: any;
,然後在ngAfterViewInit()來做到這一點
new Masonry(this.masonryGrid.nativeElement, {
// options
itemSelector: '.grid-item',
columnWidth: 200
});
一切都被編譯爲好,我沒有看到在控制檯的任何錯誤,但砌體不會被實例化,它不工作。
任何形式的幫助將不勝感激。
編輯:
它開始工作。看起來,angular-cli webpack存在問題。有時它不會自動識別更改。它說在控制檯中「沒有任何改變」。我重新啓動服務器,它開始工作。
您能不能給工作比如我有同樣的問題 – user2217288
你能提供更多的細節,所以我可以幫你嗎?你做了什麼 ? @ user2217288 –