私はAngular2で遊んでいますし、次の操作を行いますしようとしています:テンプレートがAngular2で完全にレンダリングされたときに使用できるメソッドはありますか?
- は項目がDOMに読み込みが終了したら、アイテムをフォーマットする外部ライブラリへの呼び出しを行う項目
- の一覧を表示しますある意味で、例えば石積み。
私はBackbone Marionetteに精通しています。そのため、おそらくonShow
メソッドを使用します。 Angular2では、次のJSメソッドを呼び出せるように、DOMが完全にレンダリングされていることを確認するために何ができますか?
コードスニペット:
@Component({
selector: 'my-views',
templateUrl: 'app/views/views.component.html',
styleUrls: ['app/views/views.component.css'],
directives: [HeaderComponent]
})
export class ViewsComponent implements OnInit {
...
ngOnInit() {
this.user = new User();
if (this.user.session_id) {
this.getList();
} else {
this.router.navigate(['login']);
}
}
ngAfterViewInit() {
var elem = document.querySelector('.grid');
var colWidth = document.querySelector('.grid-size');
var msnry = new Masonry(elem, {
// options
itemSelector: '.grid-item',
columnWidth: colWidth,
percentPosition: true
});
}
getList() {
this.getList(this.user)
.then(Array => {
this.myViews = Array;
});
}
}
私はngAfterViewInit
フック内のブレークポイントを入れて、それがヒットした時に、DOMはまだリストが表示されません。私は、リストが正常にレンダリングされた後、同じスニペットをコンソールで実行すると、正常に実行されたため、フック内にあるコードが機能することがわかります。
はなかったですコンポーネントクラスにOnInitインターフェイスを実装しますか? –
このパートは? 'ExportクラスViewsComponentはOnInit {@ –