我通过角度砌体体验了一些有趣的行为。我按照文档中的说明加载它:
<input type="text" ng-model="searchString" ng-keyup="search()" />
<div masonry='{"gutter" : 25}'>
<div class="masonry-brick" ng-repeat="result in results">
<div>{{result.description}}</div>
</div>
</div>
当页面加载并且一切看起来都很好时,我从API调用中加载$ scope.results ...砌体按照您的预期呈现所有砖块内联。从API结果集刷新$ scope.results后,这些项呈现在页面左侧的单个列中。造型仍然看起来很棒,但我无法利用整页宽度。我基本上来自:
---- ---- ----
---- ---- ----
为:
----
----
----
----
----
----
有没有办法让砌体重新计算网格?还是有其他人找到了解决这个问题的好方法?我已经阅读了几个问题并查看了github项目,但我似乎无法找到一个好的解决方案。
答案 0 :(得分:0)
我不确定这是否是最佳解决方案,但在类似情况下这对我有用:
function refresh() {
common.$timeout(function () { $scope.$broadcast('masonry.reload'); }, 100);
}
每当更改/更新数据源时,请致电refresh()
。它会迫使砖石重新计算布局。
答案 1 :(得分:0)
呼叫
$('.grid').masonry('destroy');
在为重复模型设置新数据之前。 它帮助了我。