微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AngularJS中的javascript – lightGallery(jQuery插件)

我正在尝试使用lightgallery jQuery插件(http://sachinchoolur.github.io/lightGallery/index.html)来使用AngularJS.

我发现一些答案表明我需要一个指令,所以我创建了以下内容

.directive('lightgallery', function() {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            jQuery(element).lightgallery();
        }
    };
})

然后在我看来我这样做:

<ul lightgallery>
    <li ng-repeat="photo in album.photos" data-src="{{photo.fullres}}">
        <img ng-src="{{photo.thumbnail}}" />
    </li>
</ul>

(我也试过< ul light-gallery>)
当我运行页面时,单击任何缩略图时没有任何反应.
我可以在链接功能中放置一个alert(),然后显示.

如何让AngularJS与jQuery和这个插件一起玩?

更新:

经过一些调试后,似乎在模型绑定到视图之前执行了jQuery(element).lightgallery().
那么接下来的问题是,当一切都被约束而不是之前,我如何获得一个调用的指令.

解决方法:

一旦ng-repeat完成渲染,调用lightgallery.
您可以像这样修改指令

.directive('lightgallery', function() {
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
      if (scope.$last) {

        // ng-repeat is completed
        element.parent().lightgallery();
      }
    }
  };
});

HTML

<ul>
  <li lightgallery ng-repeat="photo in photos" data-src="{{photo.fullres}}">
    <img ng-src="{{photo.thumbnail}}" />
  </li>
</ul>

这是演示plnkr

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐