如何在ng-repeat中重新初始化AngularJS指令?

时间:2018-01-25 03:35:14

标签: angularjs

这是我的指示

app.directive('masonry', function() {
return function(scope, element, attrs) {
    scope.$watch(attrs.masonry,function(value){
        jQuery(function($) {
            var grid = $('.main_creation').masonry({
                itemSelector: '.creation',
                percentPosition: true,
                horizontalOrder: true
            });

            grid.imagesLoaded().progress( function() {
                grid.masonry('layout');
            });
        });
    });
};

});

这是我的HTML

<div class="creation" ng-repeat="img in images" masonry>
  //some code
</div>

首次加载时,指令正在运行,但如果ng-repeat正在改变,例如在ng-repeat中删除或添加更多数据,则该指令不起作用。

编辑: 此外,我不知道为什么手表不会触发。当我在console.log(attrs.masonry)时,它们就是变化。

0 个答案:

没有答案