javascript - 重新加载 ng-repeat 在删除旧列表之前呈现新列表

标签 javascript angularjs angularjs-ng-repeat

我需要用 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/

相关文章:

Firefox 中的 JavaScript 键盘键代码 0

javascript - 在 JSON 中使用动态值

javascript - Angular 1 - 复杂的 ng-repeat 对象/数组

javascript - 如何使用 ng-show 在 ng-repeat 中显示特定的 div?

javascript - 数据表导出删除后的值

javascript - 如何让我的结果在 javascript 中正确相加

jquery - 带有下拉选择的 AngularJS

javascript - 如何在angularjs中获取响应数组值的asc顺序

angularjs - Jenkins - 构建步骤 'Execute shell' 在 linux 环境中将构建标记为失败

javascript - Angular 指令 ng-repeat 和范围问题