gpt4 book ai didi

javascript - AngularJS 中的 lightGallery(jQuery 插件)

转载 作者:行者123 更新时间:2023-12-01 02:05:18 30 4
gpt4 key购买 nike

我正在尝试让 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()在模型绑定(bind)到 View 之前执行。所以问题是如何在所有内容都绑定(bind)时而不是之前调用指令。

最佳答案

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

关于javascript - AngularJS 中的 lightGallery(jQuery 插件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30220165/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com