Angularjs 使用角砌体捕获layoutComplete事件

Angularjs 使用角砌体捕获layoutComplete事件,angularjs,masonry,Angularjs,Masonry,我正在使用我的一个项目,并有这样的设置 <div id="tile_container" masonry preserve-order column-width="340" reload-on-show masonry-options="{ transitionDuration: '0.2s', gutter: 0 }"> <div ng-repeat="tile in tiles" class="masonry-brick"> ... &

我正在使用我的一个项目,并有这样的设置

<div id="tile_container" masonry preserve-order column-width="340" reload-on-show masonry-options="{ transitionDuration: '0.2s', gutter: 0 }">
    <div ng-repeat="tile in tiles" class="masonry-brick">
        ...
    </div>
</div>

...
现在,AngularJS需要几秒钟的时间来获取我的
tiles
对象中的项目,然后让Mashise将它们布置出来。如何使用此方法从砌体中捕获
layoutComplete
事件?

如下所示:

var $grid = angular.element('#tile_container'); 
$grid.masonry( 'on', 'layoutComplete',
     function( msnryInstance, laidOutItems ) {
        console.log('layoutComplete');
     } );
在控制器中

$scope.$on('masonry.created', function (evt, element) {
        element.masonry('on', 'layoutComplete', function(instance, items) {
           console.log(instance);
        });
    });

它对我有效。

当我将此代码放入控制器时,我得到一个错误:
无法在初始化之前调用砌体上的方法;试图调用“on”
我可以让它工作,但不能正常工作。layoutComplete发出多次,或者在页面加载时只发出一次,这可能是因为我正在动态地向布局中添加砖块。