我们正在使用ng表在页面上呈现一些数据。在表格内,一个ng-repeater会从对象数组中逐行显示值。列之一是选择框,其值来自在控制器内部声明并填充的数组中。
这是数组的声明:
$scope.CharacteristicsToChange = [];
这是方法中某处的数组填充:
if ($scope.ItemProfile.ProductionDateRegistration != 'No')
$scope.CharacteristicsToChange.push({ Name: 'Production date' });
if ($scope.ItemProfile.BestBeforeDateRegistration != 'No')
$scope.CharacteristicsToChange.push({ Name: 'Best before date' });
选择框为:
<select class="form-control" id="ddlCharacteristics" ng-options="characteristic.Name as characteristic.Name for characteristic in CharacteristicsToChange" name="Characteristic" ng-model="inventory.SelectedCharacteristic" required>
<option value="" class="select-placeholder"> Select characteristic type</option>
</select>
我们的问题是,当ng表的数据每10秒重新加载一次,并且页面滚动到底部时,页面又回到顶部。
我认为问题在于数组是我们从其中获取select($ scope.CharacteristicsToChange)值的地方,因为当我删除该数组的填充部分时,就不再出现重新加载问题。
答案 0 :(得分:1)
页面上是否有ng-if
或ng-show
的实例?没有看到更多代码,听起来您实际上可能是在重新加载数据时实际上在DOM上删除/隐藏了元素,然后重新创建它(因此使其回滚到顶部)