我正在开发一个" 艺术画廊 "应用程序.
目前的工作是让Masonry与Angular合作:
.directive("masonry", function($parse) {
return {
restrict: 'AC',
link: function (scope, elem, attrs) {
elem.masonry({ itemSelector: '.masonry-brick'});
}
};
})
.directive('masonryBrick', function ($compile) {
return {
restrict: 'AC',
link: function (scope, elem, attrs) {
scope.$watch('$index',function(v){
elem.imagesLoaded(function () {
elem.parents('.masonry').masonry('reload');
});
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
这不能很好地工作,因为:
该reload函数:
在应用程序的上下文中,我给出了上面的链接,这个问题变得非常容易复制.
我正在寻找一个将使用指令来利用的解决方案:
.masonry('appended', elem) 和 .masonry('prepended', elem)
而不是.masonry('reload')每次都执行.
.masonry('reload') 当从结果集中删除元素时.
该项目已更新为使用下面的工作解决方案.
在 …