我有以下情况......我必须在视口区域内绘制一堆矩形。这些矩形(div确实)的大小基于一些数据。
控制器到达服务器,抓取数据,并根据视口中分配给它的可用空间调整div的大小。
大致是:
<div ng-init="main.init();">
<div ng-repeat="icon in main.icons"
style="top: {{icon.top}}px;
left: {{icon.left}}px;
width: {{icon.width}}px;
height: {{icon.height}}px;"></div>
</div>
main.init()函数使用angular.element()
调用到达DOM,获取可用空间的宽度和高度,并调用一个执行一些复杂计算的服务(基本上是一个包装算法来定位和调整大小在给定区域的情况下,以最佳方式使用矩形。
我唯一的问题是屏幕调整大小。如果用户调整屏幕大小,我的可用空间(以%定义)也会发生变化,我需要重新绘制这些矩形。
我目前正在重新加载整个页面,重新调整窗口大小,但这显然不是我想要的。
还有一件事......有很多这些数据点转化为矩形:10K-20K。
如何在Angular中正确执行此操作,以便我的窗口大小可以计算并重新绘制它们。简单地更新控制器中的main.icons
似乎不会触发ng-repeat来重绘所有内容。不知道为什么。
任何帮助都将不胜感激。