Как я могу получить директиву, чтобы стрелять после того, как представление загружено?

Я знаю, что об этом спрашивали тысячу раз, но я думаю, чтоЯ испробовал каждое решение, которое япрочитал и смогукажется, заставить его работать.

У меня есть 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>
  

Ответы на вопрос(3)

Ваш ответ на вопрос