Как я могу получить директиву, чтобы стрелять после того, как представление загружено?
Я знаю, что об этом спрашивали тысячу раз, но я думаю, чтоЯ испробовал каждое решение, которое япрочитал и смогукажется, заставить его работать.
У меня есть API, из которого яя получаю свои изображения, после того, как вытащил изображения в вид, я хочу, чтобы они использовали photoswipe для отображения на мобильном телефоне.
У меня есть директива:
'use strict';
App.directive('photoswipe', function () {
return {
replace: false,
restrict: 'A',
link: function photoSwipeLink(scope, element, attr) {
scope.$watch(attr.photoswipe, function(value){
angular.element('#gallery a').photoSwipe({
enableMouseWheel: false,
enableKeyboard: false
});
});
}
};
});
Я получаю эту ошибку в консоли:
Code.PhotoSwipe.createInstance: No images to passed.
Я предполагаю, что это потому, что директива работает до того, как представление отрисовывается.
Если я добавлю $ timeout вместо watch, тогда код заработает. К сожалению, это решение бесполезно, так как может возникнуть задержка при получении данных из API. Кроме того, код неработать в течение тайм-аута.
Я пробовал, приведенный выше код, ямы пытались использовать $ viewcontentloaded, пытались запустить функцию после последнего элемента в ng-repeat, но ни одна из них не работает.
Любая помощь приветствуется.
РЕДАКТИРОВАТЬ:
Вот'с HTML.
{{ gallery.headline }}
<a href="{{ image.url }}" alt="image.caption">
<img ng-src="{{ image.thumb_url }}" class="thumb" alt="{{ image.caption }}" style="display: block;">
{{ image.caption }}
</a>