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发出多次,或者在页面加载时只发出一次,这可能是因为我正在动态地向布局中添加砖块。