更新ngRepeat结果后,在单列中显示砖块的角度砌块

时间:2014-12-17 03:03:50

标签: angularjs angularjs-directive jquery-masonry masonry

我通过角度砌体体验了一些有趣的行为。我按照文档中的说明加载它:

<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项目,但我似乎无法找到一个好的解决方案。

2 个答案:

答案 0 :(得分:0)

我不确定这是否是最佳解决方案,但在类似情况下这对我有用:

function refresh() {
    common.$timeout(function () { $scope.$broadcast('masonry.reload'); }, 100);
}

每当更改/更新数据源时,请致电refresh()。它会迫使砖石重新计算布局。

答案 1 :(得分:0)

呼叫

$('.grid').masonry('destroy');

在为重复模型设置新数据之前。 它帮助了我。