У меня есть директива, в которой я динамически вычисляю высоту каждого li
в ng-повторителе, управляемом ajax, нахожу самый высокий, а затем устанавливаю для всех братьев и сестер li
ту же высоту, что и самый высокий.
Каждый li
имеет вложенный div с тегом img
:
<li ng-repeat="t in things">
<div>
<img>
<p>some text and stuff</p>
</div>
</li>
Поскольку мне нужно, чтобы изображения были там до получения высоты, я подумал, что проверка загрузки окна имеет наибольший смысл:
angular.module('directives', [])
.directive('findHeight', ['$window', function ($window) {
return {
link: function (scope, el) {
$window.on('load', function () {
// do my thang...
});
}
}
});
И это работает... при загрузке... Но когда я меняю маршруты и применяю эту директиву к последующим представлениям, она не срабатывает (поскольку окно уже загружено).
Мой вопрос: я изучил события $route в Angular. но, похоже, мне не на что реагировать, что включает в себя как изменение маршрута , так и содержимое окна, загружаемое при разрешении нового маршрута.
Поэтому вместо window.load я проверяю загрузку изображения. Есть ли что-то, что я упускаю из виду в Angular, поэтому мне не нужно слушать загрузку изображения или это подходящий подход? Думаю, мне интересно, есть ли в Angular встроенные события, которые я могу упустить.
angular.module('directives', [])
.directive('findHeight', function () {
return {
link: function (scope, el) {
angular.element('img').on('load', function () {
// do my groove thang...
});
}
}
});