Я пытаюсь создать макет кладки, загружая в <script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
в верхней части страницы индекса и использовать его в компоненте моего веб-приложения.
Эта проблема, вероятно, не относится к конкретной кладке, общая проблема заключается в том, что включенный в заголовок скрипт не загружается при внутренней навигации.
Я выбрал инициализацию кладки в HTML. Проблема возникает при использовании внутренней навигации для перехода на страницу. Если я перезагружаю страницу по правильному URL-адресу, сценарий делает свое дело и создает нужный макет. Однако при навигации по ссылкам на роутеры скрипты не загружаются или что-то не так, что делает его неприменимым.
Вот изображение правильной загрузки, которая происходит при обновлении страницы:
И одна из неправильных загрузок при внутренней навигации по странице:
HTML-код страницы:
<div class="grid" data-masonry='{ "itemSelector": ".grid-item", "columnWidth": 5 }'>
<div *ngFor="let card_text of card_array" class="grid-item">
<div class="cardTop">
<img src="/static/images/ordercards/greenOrderIcon.svg">
<div class="orderId">
Order # Some number
</div>
</div>
<div class="cardMain">
{{ card_text }}
</div>
<div class="cardBot">
<a routerLink="/orders"> Learn More ></a>
</div>
</div>
</div>
и в index.html включен скрипт, упомянутый вверху.
Есть идеи, как загружать скрипт при каждом внутреннем переходе на страницу?