我需要用 ng-repeat 测量包含 LI 的 UL 的宽度 第一次效果很好。然而,当重新加载数据时,宽度是实际宽度的两倍,我相信这是由于在删除旧 LI 之前对新 LI 进行 Angular 渲染
如何在渲染新的 LI 之前先删除旧的 LI
附言如果我将超时设置为 1000,它会正常工作,但我不想每次都等待 1 秒。
<ul class='ul'>
<li ng-repeat="thing in data.things" class="buyer_li" ng-init="$last && getUlWidth()">
<p>{{thing.detail}}
</li>
</ul>
<button ng-click="reloadData()">Reload</button>
$scope.getUlWidth = function(){
setTimeout(function() {
$scope.ulWidth = document.querySelector('.ul').clientWidth;
}, 0);
}
$scope.reloadData = function(){
//reloadDataFunc;
}
最佳答案
我找到了它发生的原因 这是因为我没有通过任何方式跟踪 ng-repeat,通过 $index 添加 =ing 跟踪解决了这个问题。
查看此问题和答案 Angular ng-repeat causes flickering
关于javascript - 重新加载 ng-repeat 在删除旧列表之前呈现新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42403602/