如何让 imageLoaded 与 Angular2 和 Masonry 一起工作?

How do you get imageLoaded to work with Angular2 and Masonry?

我正在开发一个应用程序并尝试将 Angular2 与 Masonry 和 imagesLoaded 一起使用。我让 angular2-masonry 工作,但似乎找不到任何关于如何让 imagesLoaded 使用它的文档。现在,我所有的积木都重叠了。我在以前的应用程序中没有 Angular2 的情况下完成了这个实现,imagesLoaded 完美地解决了这个问题。

我将如何实施?我知道 angular2 强烈反对直接 DOM 操纵。 angular 有没有办法检查图像是否已加载?也许我可以使用结构指令仅在图像最终加载时显示卡片?

我只是按照 https://www.npmjs.com/package/angular2-masonry 中的说明进行操作,效果很好。我的积木不再重叠。 使用 useImagesLoaded:

<masonry **[useImagesLoaded]="true"**></masonry>

并且不要忘记在您的 index.html 中导入脚本:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/4.1.1/imagesloaded.pkgd.min.js"></script>

我不推荐这种实施艺术。如果用户没有互联网连接怎么办?该模块会抛出错误。

我推荐的实施方式:

  1. npm install imagesloaded
  2. 在您的打字稿文件中导入 imagesloaded 模块,如下所示:
    1. window['imagesLoaded'] = require('imagesloaded');

这就是您可以确定的方式,即使没有互联网连接,您的模块也会如此。